女子醫(yī)院網(wǎng)站設(shè)計(jì)怎么做欒城seo整站排名
分文件編寫(xiě)遇到的問(wèn)題
分文件編寫(xiě)例子如下所示:
但是直接使用 Run Code 或者 調(diào)試C/C++文件 會(huì)報(bào)錯(cuò)如下:
- 正在執(zhí)行任務(wù): C/C++: g++.exe 生成活動(dòng)文件
正在啟動(dòng)生成…
cmd /c chcp 65001>nul && D:\Librarys\mingw64\bin\g++.exe -fdiagnostics-color=always -g “E:\VSCode Projects\main.cpp” -o “E:\VSCode Projects\main.exe”
D:/Librarys/mingw64/bin/…/lib/gcc/x86_64-w64-mingw32/13.1.0/…/…/…/…/x86_64-w64-mingw32/bin/ld.exe: C:\Users\beyou\AppData\Local\Temp\cc05WNEh.o: in functionmain': E:/VSCode Projects/main.cpp:9: undefined reference to
swap(int, int)’
collect2.exe: error: ld returned 1 exit status
生成已完成,但出現(xiàn)錯(cuò)誤
終端進(jìn)程已終止,退出代碼: -1。
終端將被任務(wù)重用,按任意鍵關(guān)閉。
解決辦法
vscode 的 .vscode 的配置遵循父類文件夾優(yōu)先的原則,也就是說(shuō)父文件夾的 .vscode 和子文件夾的 .vscode ,優(yōu)先訪問(wèn)父文件夾
最原始的 tasks.json 內(nèi)容為這樣,它只適合于單文件生成,也就是你把所有的代碼寫(xiě)在一個(gè) .cpp 文件里面。如果你在你的項(xiàng)目文件夾下新建子文件夾,再把你的代碼文件移動(dòng)到子文件夾下,對(duì)于你這種單文件而言,下面的內(nèi)容仍然不用改變。也能正常編譯運(yùn)行。(因?yàn)?fileDirname 就是裝你的代碼文件所在的位置)
"args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],
對(duì)于分文件編寫(xiě)的程序,需要改 tasks.json 里面的東西為下面的樣子,同理,這樣已經(jīng)是正確的了,即使你遞歸地建了100個(gè)子文件夾把程序放在里面,下面的路徑也不需要從根文件夾 \\ 到 100 個(gè)子文件夾后的位置。也就是說(shuō),只要是分文件編寫(xiě)的項(xiàng)目,按下面這樣寫(xiě)就行了。(因?yàn)?fileDirname 就是裝你的代碼文件所在的位置)
"args": ["-fdiagnostics-color=always","-g","${fileDirname}\\*.cpp","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],
之后使用 調(diào)試C/C++文件 和 運(yùn)行C/C++文件 都沒(méi)有問(wèn)題,但是 Run Code 會(huì)報(bào)錯(cuò),別管 Run Code ,這個(gè)修改很復(fù)雜,而且違背初心了,原因如下:
大型項(xiàng)目使用 調(diào)試C/C++文件,不要選擇 Run Code,因?yàn)?Run Code 是一個(gè)快捷工具,主要由 Code Runner 插件提供。它執(zhí)行一個(gè)預(yù)定義的命令,通常是針對(duì)單個(gè)文件進(jìn)行快速編譯和運(yùn)行。調(diào)試C/C++文件 運(yùn)行的是 VSCode 的 任務(wù)構(gòu)建系統(tǒng),這需要通過(guò) tasks.json 文件進(jìn)行配置。所以我們可以在里面靈活地修改。
其實(shí)最好還是了解 c++ 編譯過(guò)程,會(huì)對(duì)上面為什么這樣寫(xiě)有更深的感悟,但是小白可能只想著快點(diǎn)解決錯(cuò)誤。
特別鳴謝:bmg的遠(yuǎn)程操作與指導(dǎo)
特別批評(píng):QuantumDusk的不作為