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