[{"data":1,"prerenderedAt":1712},["ShallowReactive",2],{"wiki-page-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0100-c-kai-fa-huan-jing-da-jian-yu-ce-shi":3,"wiki-doc-items-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0100-c-kai-fa-huan-jing-da-jian-yu-ce-shi":1296,"language-switcher-data-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0100-c-kai-fa-huan-jing-da-jian-yu-ce-shi":1696,"wiki-i18n-paths-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0100-c-kai-fa-huan-jing-da-jian-yu-ce-shi":1711},{"id":4,"title":5,"body":6,"canonicalPath":1276,"chapterDepth":1277,"chapterOrder":1278,"date":1279,"description":12,"docI18nKey":1280,"docKey":1281,"docRoot":1282,"docTitle":1283,"extension":1284,"i18nKey":1285,"isBlogPost":1286,"isWikiDoc":1287,"isWikiIndex":1286,"layout":1288,"legacyPath":1288,"locale":1289,"localeSlug":1290,"meta":1291,"navigation":1287,"path":1276,"seo":1292,"sourcePath":1293,"sourceStem":1285,"stem":1294,"wikiDepth":214,"__hash__":1295},"content\u002F_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0100-C++开发环境搭建与测试.md","C++ Development Environment Setup and Testing",{"type":7,"value":8,"toc":1253},"minimark",[9,13,16,31,40,50,55,62,65,75,78,95,98,185,194,198,203,257,264,268,298,385,389,430,433,437,444,450,453,456,461,472,481,484,500,505,509,512,521,526,529,535,538,543,546,551,555,558,572,575,625,628,649,658,663,667,699,705,708,710,714,718,722,729,760,763,768,773,776,779,782,802,805,810,815,819,822,828,866,873,878,887,893,899,905,921,927,934,955,968,981,989,993,999,1005,1008,1060,1063,1067,1071,1074,1080,1083,1099,1102,1117,1121,1124,1140,1142,1157,1161,1167,1183,1186,1209,1213,1216,1219,1236,1249],[10,11,12],"p",{},"This chapter won't involve modifying code, just focusing on one very specific task.",[10,14,15],{},"Run my prepared CMake template on Linux.",[10,17,18,19,23,24,23,27,30],{},"If you're just starting to learn C++, don't be intimidated by names like ",[20,21,22],"code",{},"CMake",", ",[20,25,26],{},"Ninja",[20,28,29],{},"target_link_libraries",". This chapter doesn't require you to fully understand their underlying principles—just follow the steps to get the project running. Later, when you learn about header files, separate-file compilation, and third-party libraries, it will feel more natural to revisit this content.",[10,32,33,34,39],{},"A complete CMake template explanation is provided later in the ",[35,36,38],"a",{"href":37},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-cmake-gong-cheng-mu-ban","CMake Project Template",". This chapter only focuses on two things:",[41,42,43,47],"ol",{},[44,45,46],"li",{},"Can your computer compile and run C++ projects?",[44,48,49],{},"Can I use F5 to debug this project in VSCode?",[51,52,54],"h2",{"id":53},"final-effect-of-this-chapter","Final Effect of This Chapter",[10,56,57,58,61],{},"After completing this chapter, you will get a folder named ",[20,59,60],{},"hello_cpp"," containing a complete CMake template project.",[10,63,64],{},"When running the template as-is, the output will be similar to:",[66,67,73],"pre",{"className":68,"code":70,"language":71,"meta":72},[69],"language-text","[lib1] Vector v = 1 2 3\n[lib1] Norm = 3.74166\n[lib2] Matrix m =\n1 2\n3 4\n[lib2] Determinant = -2\n","text","",[20,74,70],{"__ignoreMap":72},[10,76,77],{},"This chapter will proceed in the following order:",[41,79,80,83,86,89,92],{},[44,81,82],{},"Install C++ development tools on Ubuntu or Fedora.",[44,84,85],{},"Download the CMake template I've prepared.",[44,87,88],{},"First, run the template as is to confirm the environment setup is fine.",[44,90,91],{},"Check which files in the template are related to the subsequent learning.",[44,93,94],{},"Debug the template program in VSCode by pressing F5.",[10,96,97],{},"Let me introduce a few names first, so they won't feel too sudden later:",[99,100,101,115],"table",{},[102,103,104],"thead",{},[105,106,107,112],"tr",{},[108,109,111],"th",{"align":110},"left","Name",[108,113,114],{"align":110},"Let's understand it this way first",[116,117,118,129,142,151,161,175],"tbody",{},[105,119,120,126],{},[121,122,123],"td",{"align":110},[20,124,125],{},"g++",[121,127,128],{"align":110},"the compiler that truly compiles C++ code",[105,130,131,135],{},[121,132,133],{"align":110},[20,134,22],{},[121,136,137,138,141],{"align":110},"Read ",[20,139,140],{},"CMakeLists.txt",", generate build rules",[105,143,144,148],{},[121,145,146],{"align":110},[20,147,26],{},[121,149,150],{"align":110},"Execute compilation following the rules generated by CMake.",[105,152,153,158],{},[121,154,155],{"align":110},[20,156,157],{},"GDB",[121,159,160],{"align":110},"Debugger, used when pressing F5 in VSCode",[105,162,163,172],{},[121,164,165,168,169],{"align":110},[20,166,167],{},"lib1"," \u002F ",[20,170,171],{},"lib2",[121,173,174],{"align":110},"The two example libraries included in the template will remain unchanged in this chapter.",[105,176,177,182],{},[121,178,179],{"align":110},[20,180,181],{},"cmake_template",[121,183,184],{"align":110},"Current executable program name generated by the template",[10,186,187,188,190,191,193],{},"Note: ",[20,189,60],{}," is the name of the folder we cloned, and ",[20,192,181],{}," is the program name currently generated by this project. They are not the same thing.",[51,195,197],{"id":196},"install-basic-tools","Install basic tools",[199,200,202],"h3",{"id":201},"ubuntu-debian","Ubuntu \u002F Debian",[66,204,208],{"className":205,"code":206,"language":207,"meta":72,"style":72},"language-bash shiki shiki-themes github-light github-dark","sudo apt update\nsudo apt install git cmake ninja-build gcc g++ gdb libeigen3-dev\n","bash",[20,209,210,226],{"__ignoreMap":72},[211,212,215,219,223],"span",{"class":213,"line":214},"line",1,[211,216,218],{"class":217},"sScJk","sudo",[211,220,222],{"class":221},"sZZnC"," apt",[211,224,225],{"class":221}," update\n",[211,227,229,231,233,236,239,242,245,248,251,254],{"class":213,"line":228},2,[211,230,218],{"class":217},[211,232,222],{"class":221},[211,234,235],{"class":221}," install",[211,237,238],{"class":221}," git",[211,240,241],{"class":221}," cmake",[211,243,244],{"class":221}," ninja-build",[211,246,247],{"class":221}," gcc",[211,249,250],{"class":221}," g++",[211,252,253],{"class":221}," gdb",[211,255,256],{"class":221}," libeigen3-dev\n",[10,258,259,260,263],{},"Eigen is installed here ",[20,261,262],{},"libeigen3-dev"," because the original template example used it. Once installed, the template will run directly.",[199,265,267],{"id":266},"fedora","Fedora",[66,269,271],{"className":205,"code":270,"language":207,"meta":72,"style":72},"sudo dnf install git cmake ninja-build gcc gcc-c++ gdb eigen3-devel\n",[20,272,273],{"__ignoreMap":72},[211,274,275,277,280,282,284,286,288,290,293,295],{"class":213,"line":214},[211,276,218],{"class":217},[211,278,279],{"class":221}," dnf",[211,281,235],{"class":221},[211,283,238],{"class":221},[211,285,241],{"class":221},[211,287,244],{"class":221},[211,289,247],{"class":221},[211,291,292],{"class":221}," gcc-c++",[211,294,253],{"class":221},[211,296,297],{"class":221}," eigen3-devel\n",[99,299,300,313],{},[102,301,302],{},[105,303,304,307,310],{},[108,305,306],{},"Ubuntu\u002FDebian",[108,308,309],{},"Fedora\u002FRHEL",[108,311,312],{},"Explanation",[116,314,315,325,335,345,355,365,375],{},[105,316,317,320,322],{},[121,318,319],{},"git",[121,321,319],{},[121,323,324],{},"version control tools",[105,326,327,330,332],{},[121,328,329],{},"cmake",[121,331,329],{},[121,333,334],{},"CMake build tool",[105,336,337,340,342],{},[121,338,339],{},"ninja-build",[121,341,339],{},[121,343,344],{},"Ninja build tool",[105,346,347,350,352],{},[121,348,349],{},"gcc",[121,351,349],{},[121,353,354],{},"C compiler",[105,356,357,359,362],{},[121,358,125],{},[121,360,361],{},"gcc-c++",[121,363,364],{},"C++ compiler",[105,366,367,370,372],{},[121,368,369],{},"gdb",[121,371,369],{},[121,373,374],{},"GNU Debugger (GDB)",[105,376,377,379,382],{},[121,378,262],{},[121,380,381],{},"eigen3-devel",[121,383,384],{},"Eigen3 C++ Numerical Library Development Files",[51,386,388],{"id":387},"check-whether-the-tool-is-installed-successfully","Check whether the tool is installed successfully",[66,390,392],{"className":205,"code":391,"language":207,"meta":72,"style":72},"git --version\ncmake --version\nninja --version\ng++ --version\ngdb --version\n",[20,393,394,402,408,416,423],{"__ignoreMap":72},[211,395,396,398],{"class":213,"line":214},[211,397,319],{"class":217},[211,399,401],{"class":400},"sj4cs"," --version\n",[211,403,404,406],{"class":213,"line":228},[211,405,329],{"class":217},[211,407,401],{"class":400},[211,409,411,414],{"class":213,"line":410},3,[211,412,413],{"class":217},"ninja",[211,415,401],{"class":400},[211,417,419,421],{"class":213,"line":418},4,[211,420,125],{"class":217},[211,422,401],{"class":400},[211,424,426,428],{"class":213,"line":425},5,[211,427,369],{"class":217},[211,429,401],{"class":400},[10,431,432],{},"These commands all output version numbers, which indicates that the basic environment is already available.",[51,434,436],{"id":435},"install-vscode","Install VSCode",[10,438,439],{},[35,440,441],{"href":441,"rel":442},"https:\u002F\u002Fcode.visualstudio.com\u002FDownload",[443],"nofollow",[10,445,446],{},[447,448],"img",{"alt":72,"src":449},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage23.webp",[10,451,452],{},"If it's a Debian-based system, download the .deb; if it's an RHEL-based system, download the .rpm.",[10,454,455],{},"After downloading, open your browser, locate the folder containing this installation package, and open a terminal in that path.",[10,457,458],{},[447,459],{"alt":72,"src":460},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage24.webp",[10,462,463,464,467,468,471],{},"Debian-based: Enter ",[20,465,466],{},"sudo apt install .\u002Fcode"," then press the ",[20,469,470],{},"tab"," key to autocomplete the filename, then press Enter.",[10,473,474,475,478,479,471],{},"RHEL series: Enter ",[20,476,477],{},"sudo dnf install .\u002Fcode"," and then press the ",[20,480,470],{},[10,482,483],{},"For example, after completion:",[66,485,487],{"className":205,"code":486,"language":207,"meta":72,"style":72},"sudo dnf install .\u002Fcode-1.102.1-1752598767.el8.x86_64.rpm\n",[20,488,489],{"__ignoreMap":72},[211,490,491,493,495,497],{"class":213,"line":214},[211,492,218],{"class":217},[211,494,279],{"class":221},[211,496,235],{"class":221},[211,498,499],{"class":221}," .\u002Fcode-1.102.1-1752598767.el8.x86_64.rpm\n",[10,501,502],{},[447,503],{"alt":72,"src":504},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage25.webp",[51,506,508],{"id":507},"configure-vscode","Configure VScode",[10,510,511],{},"Then open VSCode and enter the following command in the terminal:",[66,513,515],{"className":205,"code":514,"language":207,"meta":72,"style":72},"code\n",[20,516,517],{"__ignoreMap":72},[211,518,519],{"class":213,"line":214},[211,520,514],{"class":217},[10,522,523],{},[447,524],{"alt":72,"src":525},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage26.webp",[10,527,528],{},"Then you can set up an environment exclusively for C++ to avoid conflicts with the default environment.",[10,530,531],{},[447,532],{"alt":533,"src":534},"alt text","https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2026\u002F04\u002F17\u002F1776420070033.webp",[10,536,537],{},"Make some settings; just follow my lead.",[10,539,540],{},[447,541],{"alt":533,"src":542},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F10\u002F05\u002F1780705209213.webp",[10,544,545],{},"Select the CMake configuration you created.",[10,547,548],{},[447,549],{"alt":533,"src":550},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F10\u002F05\u002F1780705255118.webp",[51,552,554],{"id":553},"install-vscode-extensions","Install VSCode Extensions",[10,556,557],{},"Suggested extensions to install in VSCode:",[41,559,560,563,566,569],{},[44,561,562],{},"CMake Tools",[44,564,565],{},"C\u002FC++",[44,567,568],{},"C\u002FC++ DevTools",[44,570,571],{},"clangd",[10,573,574],{},"Their respective roles are:",[99,576,577,587],{},[102,578,579],{},[105,580,581,584],{},[108,582,583],{"align":110},"extend",[108,585,586],{"align":110},"effect",[116,588,589,600,607,614],{},[105,590,591,593],{},[121,592,562],{"align":110},[121,594,595,596,599],{"align":110},"Identify ",[20,597,598],{},"CMakePresets.json",", run configure\u002Fbuild, select the target, and manage the CMake project build process.",[105,601,602,604],{},[121,603,565],{"align":110},[121,605,606],{"align":110},"Microsoft's official C\u002FC++ extension, offering core IntelliSense, breakpoint debugging, and GDB\u002FLLDB debugging configuration support.",[105,608,609,611],{},[121,610,568],{"align":110},[121,612,613],{"align":110},"Auxiliary tools for C\u002FC++ extensions, offering enhanced capabilities such as more convenient debug information display, memory\u002Fregister\u002Fvariable inspection, and other augmented features.",[105,615,616,618],{},[121,617,571],{"align":110},[121,619,620,621,624],{"align":110},"Based on ",[20,622,623],{},"compile_commands.json"," to provide more accurate code completion, go-to definition, find references, diagnostic hints, and refactoring capabilities.",[10,626,627],{},"To put it simply,",[629,630,631,636,644],"ul",{},[44,632,633,635],{},[20,634,562],{}," is responsible for building the project;",[44,637,638,640,641,643],{},[20,639,565],{}," and ",[20,642,568],{}," are primarily responsible for debugging;",[44,645,646,648],{},[20,647,571],{}," is mainly responsible for code hints, navigation, diagnostics, and refactoring.",[10,650,651,652,654,655,657],{},"If you're using ",[20,653,571],{}," for code hints, I recommend turning off or toning down the IntelliSense of the ",[20,656,565],{}," extension. This helps prevent duplicate or conflicting hints from two language servers running at the same time.",[10,659,660],{},[447,661],{"alt":533,"src":662},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F10\u002F05\u002F1780705309128.webp",[51,664,666],{"id":665},"clone-cmake-template","clone CMake template",[66,668,670],{"className":205,"code":669,"language":207,"meta":72,"style":72},"git clone https:\u002F\u002Fgithub.com\u002Ftungchiahui\u002FCMake_Template.git hello_cpp\ncd hello_cpp\ncode .\n",[20,671,672,685,692],{"__ignoreMap":72},[211,673,674,676,679,682],{"class":213,"line":214},[211,675,319],{"class":217},[211,677,678],{"class":221}," clone",[211,680,681],{"class":221}," https:\u002F\u002Fgithub.com\u002Ftungchiahui\u002FCMake_Template.git",[211,683,684],{"class":221}," hello_cpp\n",[211,686,687,690],{"class":213,"line":228},[211,688,689],{"class":400},"cd",[211,691,684],{"class":221},[211,693,694,696],{"class":213,"line":410},[211,695,20],{"class":217},[211,697,698],{"class":221}," .\n",[10,700,701,702,704],{},"Here, the project directory is named ",[20,703,60],{},". All subsequent commands will be executed within this directory by default.",[10,706,707],{},"When you're just starting out, don't worry about Git history, nor rush into making a lot of file changes. The first step is just one single task: confirm that this template runs on your computer.",[10,709,545],{},[10,711,712],{},[447,713],{"alt":533,"src":550},[51,715,717],{"id":716},"first-run-the-template-as-is","First run the template as-is.",[199,719,721],{"id":720},"run-via-command-line","Run via command line",[10,723,724,725,728],{},"Don't rush to modify the code just yet. According to ",[20,726,727],{},"ctrl + ~",", open the VSCode terminal and run the following three commands:",[66,730,732],{"className":205,"code":731,"language":207,"meta":72,"style":72},"cmake --preset linux-debug\ncmake --build --preset linux-debug\n.\u002Fbuild\u002Flinux-debug\u002Fsrc\u002Fcmake_template\n",[20,733,734,744,755],{"__ignoreMap":72},[211,735,736,738,741],{"class":213,"line":214},[211,737,329],{"class":217},[211,739,740],{"class":400}," --preset",[211,742,743],{"class":221}," linux-debug\n",[211,745,746,748,751,753],{"class":213,"line":228},[211,747,329],{"class":217},[211,749,750],{"class":400}," --build",[211,752,740],{"class":400},[211,754,743],{"class":221},[211,756,757],{"class":213,"line":410},[211,758,759],{"class":217},".\u002Fbuild\u002Flinux-debug\u002Fsrc\u002Fcmake_template\n",[10,761,762],{},"If the output looks like this:",[66,764,766],{"className":765,"code":70,"language":71,"meta":72},[69],[20,767,70],{"__ignoreMap":72},[10,769,770],{},[447,771],{"alt":533,"src":772},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F10\u002F05\u002F1780705705759.webp",[10,774,775],{},"Verify that the project, compiler, CMake, Ninja, and Eigen are all functioning properly. At this point, the most troublesome part of the environment setup has been successfully completed.",[10,777,778],{},"Note: During daily development, you can run programs from the build directory directly without needing to install each time.",[10,780,781],{},"Only during the verification of the installation layout is the following required:",[66,783,785],{"className":205,"code":784,"language":207,"meta":72,"style":72},"cmake --install build\u002Flinux-debug\n.\u002Finstall\u002Flinux-debug\u002Fbin\u002Fcmake_template\n",[20,786,787,797],{"__ignoreMap":72},[211,788,789,791,794],{"class":213,"line":214},[211,790,329],{"class":217},[211,792,793],{"class":400}," --install",[211,795,796],{"class":221}," build\u002Flinux-debug\n",[211,798,799],{"class":213,"line":228},[211,800,801],{"class":217},".\u002Finstall\u002Flinux-debug\u002Fbin\u002Fcmake_template\n",[10,803,804],{},"When the following appears, it means success!",[66,806,808],{"className":807,"code":70,"language":71,"meta":72},[69],[20,809,70],{"__ignoreMap":72},[10,811,812],{},[447,813],{"alt":533,"src":814},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F10\u002F05\u002F1780705741785.webp",[199,816,818],{"id":817},"run-graphically-using-vscode","Run graphically using VScode.",[10,820,821],{},"We're going to run those commands above graphically using VScode:",[10,823,824,825,827],{},"Click the ",[20,826,22],{}," on the left sidebar:",[41,829,830,851],{},[44,831,832,833,836,837,840,841,844,845,848],{},"First, you need to configure ",[20,834,835],{},"cmake --preset linux-debug",", which is equivalent to clicking the ",[20,838,839],{},"Configure"," button in the interface and selecting ",[20,842,843],{},"Linux Debug",":",[846,847],"br",{},[447,849],{"alt":533,"src":850},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F10\u002F05\u002F1780705995297.webp",[44,852,853,854,857,858,844,861,863],{},"Then this configuration for ",[20,855,856],{},"cmake --build --preset linux-debug"," will be automatically set up when you configure ",[20,859,860],{},"configure",[846,862],{},[447,864],{"alt":533,"src":865},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F10\u002F05\u002F1780706149481.webp",[10,867,868,869,872],{},"Then you need to manually click the ",[20,870,871],{},"Build"," button in the lower-left corner to perform the build:",[10,874,875],{},[447,876],{"alt":533,"src":877},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F10\u002F05\u002F1780707106120.webp",[41,879,880],{"start":410},[44,881,882,883,886],{},"Then ",[20,884,885],{},".\u002Fbuild\u002Flinux-debug\u002Fsrc\u002Fcmake_template"," running this program is equivalent to:",[10,888,889,890],{},"First, configure the program path:\n",[447,891],{"alt":533,"src":892},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F10\u002F05\u002F1780707152235.webp",[10,894,895,896],{},"Running the program:\nDebugging involves running a program in debug mode, whereas Launch directly executes the program without debugging. Unless you have specific debugging needs, it’s generally best to use Launch.\n",[447,897],{"alt":533,"src":898},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F10\u002F05\u002F1780707202465.webp",[66,900,903],{"className":901,"code":902,"language":71},[69],"![alt text](https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F10\u002F05\u002F1780707302786.webp)\n",[20,904,902],{"__ignoreMap":72},[10,906,907,908,640,911,914,915,917,918,920],{},"In addition to the access points mentioned above, the VSCode bottom status bar also has ",[20,909,910],{},"Debug",[20,912,913],{},"Launch"," quick buttons next to the ",[20,916,871],{}," button. Once you've selected a ",[20,919,181],{}," target and completed the build, you can directly click here to run or debug your program.",[66,922,925],{"className":923,"code":924,"language":71},[69],"![alt text](https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F10\u002F05\u002F1780715507074.webp)\n",[20,926,924],{"__ignoreMap":72},[10,928,929,930,933],{},"Next, I'll explain how to place the build output into ",[20,931,932],{},"install",". Generally, you only use 'install' when you're preparing a program for release; for everyday use, just stick with the 'build' command above (remember to switch back to the build configuration after testing).",[41,935,936],{},[44,937,938,941,942,945,946,949,950,952],{},[20,939,940],{},"cmake --install build\u002Flinux-debug"," is equivalent to:\nPress ",[20,943,944],{},"Ctrl+Shift+P"," in VSCode, then enter ",[20,947,948],{},"CMake: Install",".",[846,951],{},[447,953],{"alt":533,"src":954},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F10\u002F05\u002F1780707509033.webp",[10,956,957,958,961,962,965,966,949],{},"Explanation: This command will invoke the currently configured ",[20,959,960],{},"build preset"," corresponding to ",[20,963,964],{},"cmake --install \u003CbuildDir>",".\nIf you select the linux-debug preset, it is equivalent to ",[20,967,940],{},[41,969,970],{"start":228},[44,971,882,972,975,976,978],{},[20,973,974],{},".\u002Finstall\u002Flinux-debug\u002Fbin\u002Fcmake_template"," running this program is equivalent to:\nFirst, configure the program path:",[846,977],{},[447,979],{"alt":533,"src":980},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F10\u002F05\u002F1780707743776.webp",[10,982,983,984,986,987,949],{},"The way to run the program is the same as above, also by clicking ",[20,985,910],{}," or ",[20,988,913],{},[51,990,992],{"id":991},"template-current-structure","Template current structure",[10,994,995,996,949],{},"Now let's look at the relevant files in the template for this chapter. No need to understand every CMake option yet—just know that the code is located under ",[20,997,998],{},"src\u002F",[66,1000,1003],{"className":1001,"code":1002,"language":71,"meta":72},[69],".\n├── CMakeLists.txt\n├── CMakePresets.json\n├── .vscode\u002F\n│   └── launch.json\n├── cmake\u002F\n│   └── ProjectOptions.cmake\n└── src\u002F\n    ├── CMakeLists.txt\n    ├── main.cpp\n    ├── lib1\u002F\n    │   ├── CMakeLists.txt\n    │   ├── inc\u002Flib1\u002Feigen3_test.hpp\n    │   └── src\u002Feigen3_test.cpp\n    └── lib2\u002F\n        ├── CMakeLists.txt\n        ├── inc\u002Flib2\u002Feigen3_test.hpp\n        └── src\u002Feigen3_test.cpp\n",[20,1004,1002],{"__ignoreMap":72},[10,1006,1007],{},"The most important thing is:",[99,1009,1010,1019],{},[102,1011,1012],{},[105,1013,1014,1017],{},[108,1015,1016],{"align":110},"position",[108,1018,586],{"align":110},[116,1020,1021,1031,1041,1051],{},[105,1022,1023,1028],{},[121,1024,1025],{"align":110},[20,1026,1027],{},"src\u002Fmain.cpp",[121,1029,1030],{"align":110},"Program entry point, where execution begins at runtime.",[105,1032,1033,1038],{},[121,1034,1035],{"align":110},[20,1036,1037],{},"src\u002Flib1\u002F",[121,1039,1040],{"align":110},"Introductory Example Library",[105,1042,1043,1048],{},[121,1044,1045],{"align":110},[20,1046,1047],{},"src\u002Flib2\u002F",[121,1049,1050],{"align":110},"Second Example Small Library",[105,1052,1053,1057],{},[121,1054,1055],{"align":110},[20,1056,140],{},[121,1058,1059],{"align":110},"Tell CMake how to build this project",[10,1061,1062],{},"This chapter only requires recognizing these positions; there is no need to modify them.",[51,1064,1066],{"id":1065},"frequently-asked-questions","Frequently Asked Questions",[199,1068,1070],{"id":1069},"cannot-find-ninja-this-usually-means-the-build-system-tool-ninja-is-not-installed-or-its-path-is-not-configured-in-your-system-environment-please-ensure-it-is-installed-and-properly-added-to-your-path","Cannot find Ninja. This usually means the build system tool 'Ninja' is not installed or its path is not configured in your system environment. Please ensure it is installed and properly added to your PATH.",[10,1072,1073],{},"Error similar to:",[66,1075,1078],{"className":1076,"code":1077,"language":71,"meta":72},[69],"CMake was unable to find a build program corresponding to \"Ninja\"\n",[20,1079,1077],{"__ignoreMap":72},[10,1081,1082],{},"Installation:",[66,1084,1086],{"className":205,"code":1085,"language":207,"meta":72,"style":72},"sudo apt install ninja-build\n",[20,1087,1088],{"__ignoreMap":72},[211,1089,1090,1092,1094,1096],{"class":213,"line":214},[211,1091,218],{"class":217},[211,1093,222],{"class":221},[211,1095,235],{"class":221},[211,1097,1098],{"class":221}," ninja-build\n",[10,1100,1101],{},"or",[66,1103,1105],{"className":205,"code":1104,"language":207,"meta":72,"style":72},"sudo dnf install ninja-build\n",[20,1106,1107],{"__ignoreMap":72},[211,1108,1109,1111,1113,1115],{"class":213,"line":214},[211,1110,218],{"class":217},[211,1112,279],{"class":221},[211,1114,235],{"class":221},[211,1116,1098],{"class":221},[199,1118,1120],{"id":1119},"cant-find-gdb","Can't find gdb",[10,1122,1123],{},"If GDB is not found during debugging:",[66,1125,1127],{"className":205,"code":1126,"language":207,"meta":72,"style":72},"sudo apt install gdb\n",[20,1128,1129],{"__ignoreMap":72},[211,1130,1131,1133,1135,1137],{"class":213,"line":214},[211,1132,218],{"class":217},[211,1134,222],{"class":221},[211,1136,235],{"class":221},[211,1138,1139],{"class":221}," gdb\n",[10,1141,1101],{},[66,1143,1145],{"className":205,"code":1144,"language":207,"meta":72,"style":72},"sudo dnf install gdb\n",[20,1146,1147],{"__ignoreMap":72},[211,1148,1149,1151,1153,1155],{"class":213,"line":214},[211,1150,218],{"class":217},[211,1152,279],{"class":221},[211,1154,235],{"class":221},[211,1156,1139],{"class":221},[199,1158,1160],{"id":1159},"我修改了-cmakeliststxt-后构建出现了问题","我修改了 CMakeLists.txt 后，构建出现了问题。",[10,1162,1163,1164,1166],{},"This chapter does not require modifying ",[20,1165,140],{},". If you later encounter build issues after modifying CMake files in subsequent chapters, you can re-run the configuration:",[66,1168,1170],{"className":205,"code":1169,"language":207,"meta":72,"style":72},"cmake --fresh --preset linux-debug\n",[20,1171,1172],{"__ignoreMap":72},[211,1173,1174,1176,1179,1181],{"class":213,"line":214},[211,1175,329],{"class":217},[211,1177,1178],{"class":400}," --fresh",[211,1180,740],{"class":400},[211,1182,743],{"class":221},[10,1184,1185],{},"Or delete the build directory:",[66,1187,1189],{"className":205,"code":1188,"language":207,"meta":72,"style":72},"rm -rf build\u002Flinux-debug\ncmake --preset linux-debug\n",[20,1190,1191,1201],{"__ignoreMap":72},[211,1192,1193,1196,1199],{"class":213,"line":214},[211,1194,1195],{"class":217},"rm",[211,1197,1198],{"class":400}," -rf",[211,1200,796],{"class":221},[211,1202,1203,1205,1207],{"class":213,"line":228},[211,1204,329],{"class":217},[211,1206,740],{"class":400},[211,1208,743],{"class":221},[51,1210,1212],{"id":1211},"what-should-i-learn-next","What should I learn next",[10,1214,1215],{},"This chapter simply gets you started with a functional, debuggable project.",[10,1217,1218],{},"The following chapters will start with the basics of C++ syntax.",[41,1220,1221,1224,1227,1230,1233],{},[44,1222,1223],{},"Introduction to C++ Basics",[44,1225,1226],{},"Data Types and Data Storage",[44,1228,1229],{},"Input and Output",[44,1231,1232],{},"operator",[44,1234,1235],{},"program flow structure",[10,1237,1238,1239,1241,1242,168,1244,1246,1247,949],{},"Starting from the next chapter, we'll only modify ",[20,1240,1027],{}," first. When you learn about function separation into files, you can then organize ",[20,1243,167],{},[20,1245,171],{},"; and when you learn about project organization, third-party libraries, and build systems, come back to review the ",[35,1248,38],{"href":37},[1250,1251,1252],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":72,"searchDepth":228,"depth":228,"links":1254},[1255,1256,1260,1261,1262,1263,1264,1265,1269,1270,1275],{"id":53,"depth":228,"text":54},{"id":196,"depth":228,"text":197,"children":1257},[1258,1259],{"id":201,"depth":410,"text":202},{"id":266,"depth":410,"text":267},{"id":387,"depth":228,"text":388},{"id":435,"depth":228,"text":436},{"id":507,"depth":228,"text":508},{"id":553,"depth":228,"text":554},{"id":665,"depth":228,"text":666},{"id":716,"depth":228,"text":717,"children":1266},[1267,1268],{"id":720,"depth":410,"text":721},{"id":817,"depth":410,"text":818},{"id":991,"depth":228,"text":992},{"id":1065,"depth":228,"text":1066,"children":1271},[1272,1273,1274],{"id":1069,"depth":410,"text":1070},{"id":1119,"depth":410,"text":1120},{"id":1159,"depth":410,"text":1160},{"id":1211,"depth":228,"text":1212},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0100-c-kai-fa-huan-jing-da-jian-yu-ce-shi",0,"0100","2023-10-05","wiki\u002F2023-10-05-cplusplus-jiao-xue","en-us:2023-10-05-cplusplus-jiao-xue","\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue","Cplusplus教学","md","wiki\u002F2023-10-05-Cplusplus教学\u002F0100-C++开发环境搭建与测试",false,true,null,"en-US","en-us",{},{"title":5,"description":12},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0100-c-kai-fa-huan-jing-da-jian-yu-ce-shi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0100-C++开发环境搭建与测试","m7ac27mGBVkGox9isBZR6CV0_zm38zCx1B6_d43d_GE",[1297,1298,1303,1307,1311,1315,1319,1324,1329,1334,1339,1344,1349,1354,1359,1364,1369,1374,1379,1384,1389,1394,1399,1404,1409,1414,1419,1424,1429,1434,1439,1444,1449,1454,1459,1464,1469,1474,1479,1484,1489,1494,1499,1504,1509,1514,1519,1524,1529,1534,1539,1544,1549,1554,1559,1564,1569,1574,1579,1584,1589,1594,1599,1604,1609,1614,1619,1624,1629,1634,1639,1644,1649,1654,1659,1664,1669,1674,1679,1684,1689,1693],{"path":1276,"stem":1294,"title":5,"date":1279,"chapterOrder":1278,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},{"path":1299,"stem":1300,"title":1301,"date":1279,"chapterOrder":1302,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0200-c-ji-chu-chu-shi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0200-C++基础初识","C++ Basics","0200",{"path":1304,"stem":1305,"title":1226,"date":1279,"chapterOrder":1306,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0300-shu-ju-lei-xing-yu-shu-ju-cun-fang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0300-数据类型与数据存放","0300",{"path":1308,"stem":1309,"title":1229,"date":1279,"chapterOrder":1310,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0400-shu-ru-shu-chu","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0400-输入输出","0400",{"path":1312,"stem":1313,"title":1232,"date":1279,"chapterOrder":1314,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0500-yun-suan-fu","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0500-运算符","0500",{"path":1316,"stem":1317,"title":1235,"date":1279,"chapterOrder":1318,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0600-cheng-xu-liu-cheng-jie-gou","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0600-程序流程结构","0600",{"path":1320,"stem":1321,"title":1322,"date":1279,"chapterOrder":1323,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0700-shu-zu","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0700-数组","array","0700",{"path":1325,"stem":1326,"title":1327,"date":1279,"chapterOrder":1328,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0800-han-shu-yu-tou-wen-jian","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0800-函数与头文件","Functions and Header Files","0800",{"path":1330,"stem":1331,"title":1332,"date":1279,"chapterOrder":1333,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0900-指针","pointer","0900",{"path":1335,"stem":1336,"title":1337,"date":1279,"chapterOrder":1338,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1000-jie-gou-ti-yu-gong-yong-ti","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1000-结构体与共用体","Structures and Unions","1000",{"path":1340,"stem":1341,"title":1342,"date":1279,"chapterOrder":1343,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1100-nei-cun-fen-qu-yu-sheng-ming-zhou-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1100-内存分区与生命周期","Memory Partitioning and Lifecycle","1100",{"path":1345,"stem":1346,"title":1347,"date":1279,"chapterOrder":1348,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1200-yin-yong","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1200-引用","reference","1200",{"path":1350,"stem":1351,"title":1352,"date":1279,"chapterOrder":1353,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1300-han-shu-ti-gao-yu-ming-ming-kong-jian","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1300-函数提高与命名空间","Advanced Functions and Namespaces","1300",{"path":1355,"stem":1356,"title":1357,"date":1279,"chapterOrder":1358,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0100-feng-zhuang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0100-封装","encapsulation","1400-0100",{"path":1360,"stem":1361,"title":1362,"date":1279,"chapterOrder":1363,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0200-dui-xiang-chu-shi-hua-he-qing-li","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0200-对象初始化和清理","Object initialization and cleanup","1400-0200",{"path":1365,"stem":1366,"title":1367,"date":1279,"chapterOrder":1368,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0300-dui-xiang-mo-xing-yu-this-zhi-zhen","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0300-对象模型与this指针","Object Model and the `this` Pointer","1400-0300",{"path":1370,"stem":1371,"title":1372,"date":1279,"chapterOrder":1373,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0400-you-yuan-yu-yun-suan-fu-zhong-zai","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0400-友元与运算符重载","Friends and operator overloading","1400-0400",{"path":1375,"stem":1376,"title":1377,"date":1279,"chapterOrder":1378,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0500-ji-cheng","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0500-继承","inheritance","1400-0500",{"path":1380,"stem":1381,"title":1382,"date":1279,"chapterOrder":1383,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0600-duo-tai","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0600-多态","polymorphism","1400-0600",{"path":1385,"stem":1386,"title":1387,"date":1279,"chapterOrder":1388,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-lei-he-dui-xiang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-类和对象","Classes and Objects","1400",{"path":1390,"stem":1391,"title":1392,"date":1279,"chapterOrder":1393,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1500-wen-jian-cao-zuo","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1500-文件操作","File operations","1500",{"path":1395,"stem":1396,"title":1397,"date":1279,"chapterOrder":1398,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1600-yi-chang-chu-li-yu-cuo-wu-ma","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1600-异常处理与错误码","异常处理","1600",{"path":1400,"stem":1401,"title":1402,"date":1279,"chapterOrder":1403,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1700-mu-ban","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1700-模板","template","1700",{"path":1405,"stem":1406,"title":1407,"date":1279,"chapterOrder":1408,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0100-stl-chu-shi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0100-STL初识","Introduction to STL","1800-0100",{"path":1410,"stem":1411,"title":1412,"date":1279,"chapterOrder":1413,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0200-std-array","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0200-std-array","std::array","1800-0200",{"path":1415,"stem":1416,"title":1417,"date":1279,"chapterOrder":1418,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0300-string-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0300-string容器","string container","1800-0300",{"path":1420,"stem":1421,"title":1422,"date":1279,"chapterOrder":1423,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0400-vector-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0400-vector容器","vector 容器","1800-0400",{"path":1425,"stem":1426,"title":1427,"date":1279,"chapterOrder":1428,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0500-deque-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0500-deque容器","deque 容器","1800-0500",{"path":1430,"stem":1431,"title":1432,"date":1279,"chapterOrder":1433,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0600-stack-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0600-stack容器","stack 容器","1800-0600",{"path":1435,"stem":1436,"title":1437,"date":1279,"chapterOrder":1438,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0700-queue-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0700-queue容器","queue container","1800-0700",{"path":1440,"stem":1441,"title":1442,"date":1279,"chapterOrder":1443,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0800-list-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0800-list容器","list 容器","1800-0800",{"path":1445,"stem":1446,"title":1447,"date":1279,"chapterOrder":1448,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0900-set-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0900-set容器","set \u002F multiset 容器","1800-0900",{"path":1450,"stem":1451,"title":1452,"date":1279,"chapterOrder":1453,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1000-map-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-1000-map容器","map \u002F multimap 容器","1800-1000",{"path":1455,"stem":1456,"title":1457,"date":1279,"chapterOrder":1458,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1100-han-shu-dui-xiang-yu-wei-ci","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-1100-函数对象与谓词","Function objects and predicates","1800-1100",{"path":1460,"stem":1461,"title":1462,"date":1279,"chapterOrder":1463,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1200-chang-yong-suan-fa","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-1200-常用算法","Common algorithms","1800-1200",{"path":1465,"stem":1466,"title":1467,"date":1279,"chapterOrder":1468,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-stl-ti-gao-bian-cheng","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-STL提高编程","Level up your programming with STL.","1800",{"path":1470,"stem":1471,"title":1472,"date":1279,"chapterOrder":1473,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1900-c-lei-xing-zhuan-huan","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1900-C++类型转换","C++ Type Casting","1900",{"path":1475,"stem":1476,"title":1477,"date":1279,"chapterOrder":1478,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0100-auto","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0100-auto","auto","2000-0100",{"path":1480,"stem":1481,"title":1482,"date":1279,"chapterOrder":1483,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0200-nullptr","nullptr","2000-0200",{"path":1485,"stem":1486,"title":1487,"date":1279,"chapterOrder":1488,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0300-using","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0300-using","using","2000-0300",{"path":1490,"stem":1491,"title":1492,"date":1279,"chapterOrder":1493,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0400-enum-class","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0400-enum-class","enum class","2000-0400",{"path":1495,"stem":1496,"title":1497,"date":1279,"chapterOrder":1498,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0500-fan-wei-for-xun-huan","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0500-范围for循环","range-based for loop","2000-0500",{"path":1500,"stem":1501,"title":1502,"date":1279,"chapterOrder":1503,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0600-jie-gou-hua-bang-ding","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0600-结构化绑定","structured binding","2000-0600",{"path":1505,"stem":1506,"title":1507,"date":1279,"chapterOrder":1508,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0700-constexpr","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0700-constexpr","constexpr","2000-0700",{"path":1510,"stem":1511,"title":1512,"date":1279,"chapterOrder":1513,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0800-raii","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0800-RAII","RAII","2000-0800",{"path":1515,"stem":1516,"title":1517,"date":1279,"chapterOrder":1518,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0900-zhi-neng-zhi-zhen","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0900-智能指针","Smart pointer","2000-0900",{"path":1520,"stem":1521,"title":1522,"date":1279,"chapterOrder":1523,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1000-you-zhi-yin-yong-he-yi-dong-yu-yi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1000-右值引用和移动语义","Rvalue references and move semantics","2000-1000",{"path":1525,"stem":1526,"title":1527,"date":1279,"chapterOrder":1528,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1100-lambda-biao-da-shi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1100-Lambda表达式","Lambda expression","2000-1100",{"path":1530,"stem":1531,"title":1532,"date":1279,"chapterOrder":1533,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1200-std-function","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1200-std-function","std::function","2000-1200",{"path":1535,"stem":1536,"title":1537,"date":1279,"chapterOrder":1538,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1300-std-bind","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1300-std-bind","std::bind","2000-1300",{"path":1540,"stem":1541,"title":1542,"date":1279,"chapterOrder":1543,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1400-std-optional","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1400-std-optional","std::optional","2000-1400",{"path":1545,"stem":1546,"title":1547,"date":1279,"chapterOrder":1548,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1500-std-variant","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1500-std-variant","std::variant","2000-1500",{"path":1550,"stem":1551,"title":1552,"date":1279,"chapterOrder":1553,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1600-std-span","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1600-std-span","std::span","2000-1600",{"path":1555,"stem":1556,"title":1557,"date":1279,"chapterOrder":1558,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1700-std-format-print","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1700-std-format-print","std::format \u002F std::print","2000-1700",{"path":1560,"stem":1561,"title":1562,"date":1279,"chapterOrder":1563,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1800-std-chrono","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1800-std-chrono","std::chrono","2000-1800",{"path":1565,"stem":1566,"title":1567,"date":1279,"chapterOrder":1568,"chapterDepth":228,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0100-std-thread","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0100-std-thread","std::thread and join","2000-1900-0100",{"path":1570,"stem":1571,"title":1572,"date":1279,"chapterOrder":1573,"chapterDepth":228,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0200-mutex-lock-guard","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0200-mutex-lock-guard","mutex 与 lock_guard","2000-1900-0200",{"path":1575,"stem":1576,"title":1577,"date":1279,"chapterOrder":1578,"chapterDepth":228,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0300-std-atomic","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0300-std-atomic","std::atomic","2000-1900-0300",{"path":1580,"stem":1581,"title":1582,"date":1279,"chapterOrder":1583,"chapterDepth":228,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0400-condition-variable","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0400-condition-variable","condition_variable","2000-1900-0400",{"path":1585,"stem":1586,"title":1587,"date":1279,"chapterOrder":1588,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-bing-fa-bian-cheng","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-并发编程","Concurrent programming","2000-1900",{"path":1590,"stem":1591,"title":1592,"date":1279,"chapterOrder":1593,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-2000-std-filesystem","std::filesystem","2000-2000",{"path":1595,"stem":1596,"title":1597,"date":1279,"chapterOrder":1598,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2100-modules-jian-jie","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-2100-modules简介","Modules Introduction","2000-2100",{"path":1600,"stem":1601,"title":1602,"date":1279,"chapterOrder":1603,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-xian-dai-c","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-现代C++","Modern C++","2000",{"path":1605,"stem":1606,"title":1607,"date":1279,"chapterOrder":1608,"chapterDepth":228,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0100-ding-shi-qi-yu-yi-bu-io","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0100-定时器与异步IO","Timers and Asynchronous I\u002FO","2100-0100-0100",{"path":1610,"stem":1611,"title":1612,"date":1279,"chapterOrder":1613,"chapterDepth":228,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0200-boost-asio-ji-chu","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0200-Boost.Asio基础","Boost.Asio Basics","2100-0100-0200",{"path":1615,"stem":1616,"title":1617,"date":1279,"chapterOrder":1618,"chapterDepth":228,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0300-chuan-kou-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0300-串口通信","serial communication","2100-0100-0300",{"path":1620,"stem":1621,"title":1622,"date":1279,"chapterOrder":1623,"chapterDepth":228,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0400-tcp-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0400-TCP通信","TCP communication","2100-0100-0400",{"path":1625,"stem":1626,"title":1627,"date":1279,"chapterOrder":1628,"chapterDepth":228,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0500-udp-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0500-UDP通信","UDP communication","2100-0100-0500",{"path":1630,"stem":1631,"title":1632,"date":1279,"chapterOrder":1633,"chapterDepth":228,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0600-ji-qi-ren-gong-cheng-xie-fa-yu-ros2-ji-cheng","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0600-机器人工程写法与ROS2集成","Robot Engineering Approach and ROS2 Integration","2100-0100-0600",{"path":1635,"stem":1636,"title":1637,"date":1279,"chapterOrder":1638,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-boost-asio-yi-bu-io-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-Boost.Asio异步IO库","Boost.Asio asynchronous IO library","2100-0100",{"path":1640,"stem":1641,"title":1642,"date":1279,"chapterOrder":1643,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0200-eigen-xian-xing-dai-shu-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0200-Eigen线性代数库","Eigen linear algebra library","2100-0200",{"path":1645,"stem":1646,"title":1647,"date":1279,"chapterOrder":1648,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0300-opencv-ji-suan-ji-shi-jue-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0300-OpenCV计算机视觉库","OpenCV Computer Vision Library","2100-0300",{"path":1650,"stem":1651,"title":1652,"date":1279,"chapterOrder":1653,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0400-pcl-dian-yun-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0400-PCL点云库","PCL Point Cloud Library","2100-0400",{"path":1655,"stem":1656,"title":1657,"date":1279,"chapterOrder":1658,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0500-sophus-li-qun-li-dai-shu-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0500-Sophus李群李代数库","Sophus Lie group and Lie algebra library","2100-0500",{"path":1660,"stem":1661,"title":1662,"date":1279,"chapterOrder":1663,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-chang-yong-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-常用库","Learning Common Libraries","2100",{"path":1665,"stem":1666,"title":1667,"date":1279,"chapterOrder":1668,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0100-cmakepresets-yu-gou-jian-an-zhuang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0100-CMakePresets与构建安装","CMakePresets and Build Installation","2200-0100",{"path":1670,"stem":1671,"title":1672,"date":1279,"chapterOrder":1673,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0200-ding-ceng-cmake-yu-gong-gong-bian-yi-xuan-xiang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0200-顶层CMake与公共编译选项","Top-level CMake and Public Compilation Options","2200-0200",{"path":1675,"stem":1676,"title":1677,"date":1279,"chapterOrder":1678,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0300-src-yu-lib-mo-kuai-cmake-xiang-jie","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0300-src与lib模块CMake详解","Detailed CMake Explanation for src and lib Modules","2200-0300",{"path":1680,"stem":1681,"title":1682,"date":1279,"chapterOrder":1683,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0400-di-san-fang-ku-yi-lai-xie-fa","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0400-第三方库依赖写法","How to write third-party library dependencies","2200-0400",{"path":1685,"stem":1686,"title":1687,"date":1279,"chapterOrder":1688,"chapterDepth":214,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0500-mu-ban-kuo-zhan-yu-chang-jian-wen-ti","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0500-模板扩展与常见问题","Template Extensions and FAQ","2200-0500",{"path":1690,"stem":1691,"title":38,"date":1279,"chapterOrder":1692,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1286},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-cmake-gong-cheng-mu-ban","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-CMake工程模板","2200",{"path":1282,"stem":1694,"title":1695,"date":1279,"chapterOrder":1288,"chapterDepth":1277,"docKey":1281,"docRoot":1282,"docTitle":1283,"isWikiDoc":1287,"isWikiIndex":1287},"_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002Findex","C\u002FC++ tutorial",{"variants":1697},[1698,1699,1702,1705,1708],{"path":1276,"localeSlug":1290,"i18nKey":1285},{"path":1700,"localeSlug":1701,"i18nKey":1285},"\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0100-c-kai-fa-huan-jing-da-jian-yu-ce-shi","zh-hant",{"path":1703,"localeSlug":1704,"i18nKey":1285},"\u002Fzh-hk\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0100-c-kai-fa-huan-jing-da-jian-yu-ce-shi","zh-hk",{"path":1706,"localeSlug":1707,"i18nKey":1285},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0100-c-kai-fa-huan-jing-da-jian-yu-ce-shi","zh-tw",{"path":1709,"localeSlug":1710,"i18nKey":1285},"\u002Fzh-cn\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0100-c-kai-fa-huan-jing-da-jian-yu-ce-shi","zh-cn",[1276,1293,1700,1293,1703,1293,1706,1293,1709,1293],1784646861211]