"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4800],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>g});varo=n(7294);functioni(e,t,n){returntine?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}functiona(e,t){varn=Object.keys(e);if(Object.getOwnPropertySymbols){varo=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){returnObject.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}returnn}functionr(e){for(vart=1;t<arguments.length;t++){varn=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}returne}functionl(e,t){if(null==e)return{};varn,o,i=function(e,t){if(null==e)return{};varn,o,i={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(i[n]=e[n]);returni}(e,t);if(Object.getOwnPropertySymbols){vara=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}returni}vars=o.createContext({}),p=function(e){vart=o.useContext(s),n=t;returne&&(n="function"==typeofe?e(t):r(r({},t),e)),n},c=function(e){vart=p(e.components);returno.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){vart=e.children;returno.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){varn=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=p(n),d=i,g=m["".concat(s,".").concat(d)]||m[d]||u[d]||a;returnn?o.createElement(g,r(r({ref:t},c),{},{components:n})):o.createElement(g,r({ref:t},c))}));functiong(e,t){varn=arguments,i=t&&t.mdxType;if("string"==typeofe||i){vara=n.length,r=newArray(a);r[0]=d;varl={};for(varsint)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeofe?e:i,r[1]=l;for(varp=2;p<a;p++)r[p]=n[p];returno.createElement.apply(null,r)}returno.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5185:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>u,frontMatter:()=>a,metadata:()=>l,toc:()=>p});varo=n(7462),i=(n(7294),n(3905));consta={title:"Environment",description:"Suggestions for setting up a local environment for C++ course.\n",last_update:{date:newDate("2023-02-18T00:00:00.000Z")}},r=void0,l={unversionedId:"environment",id:"environment",title:"Environment",description:"Suggestions for setting up a local environment for C++ course.\n",source:"@site/pb161/environment.md",sourceDirName:".",slug:"/environment",permalink:"/pb161/environment",draft:!1,editUrl:"https://github.com/mfocko/blog/tree/main/pb161/environment.md",tags:[],version:"current",lastUpdatedAt:1676678400,formattedLastUpdatedAt:"Feb 18, 2023",frontMatter:{title:"Environment",description:"Suggestions for setting up a local environment for C++ course.\n",last_update:{date:"2023-02-18T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Introduction",permalink:"/pb161/"}},s={},p=[{value:"Required tools per OS",id:"required-tools-per-os",level:2},{value:"Windows",id:"windows",level:3},{value:"Linux",id:"linux",level:3},{value:"macOS",id:"macos",level:3},{value:"nix(OS)",id:"nixos",level:3},{value:"IDEs",id:"ides",level:2},{value:"git",id:"git",level:2},{value:"pre-commit (link)",id:"pre-commit-link",level:3},{value:"Testing",id:"testing",level:2},{value:"catch2",id:"catch2",level:3},{value:"Google Test",id:"google-test",level:3}],c={toc:p},m="wrapper";functionu(e){let{components:t,...n}=e;return(0,i.kt)(m,(0,o.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"required-tools-per-os"},"Required tools per OS"),(0,i.kt)("h3",{id:"windows"},"Windows"),(0,i.kt)("p",null,"Most likely WSL, VM or VPS. If you consider setting up either of those PITA, then\nVSCode + SSH to ",(0,i.kt)("em",{parentName:"p"},"aisa")," might be the best option for you."),(0,i.kt)("adm