网站如何做交换链接,电商运营方案,熬夜必备黄,江西网站建设公司联系方式分文件编写遇到的问题
分文件编写例子如下所示#xff1a; 但是直接使用 Run Code 或者 调试C/C文件 会报错如下#xff1a; 正在执行任务: C/C: g.exe 生成活动文件 正在启动生成… cmd /c chcp 65001nul D:\Librarys\mingw64\bin\g.exe -fdiagnostics-col…分文件编写遇到的问题
分文件编写例子如下所示 但是直接使用 Run Code 或者 调试C/C文件 会报错如下 正在执行任务: C/C: g.exe 生成活动文件 正在启动生成… cmd /c chcp 65001nul D:\Librarys\mingw64\bin\g.exe -fdiagnostics-coloralways -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 function main: E:/VSCode Projects/main.cpp:9: undefined reference toswap(int, int)’ collect2.exe: error: ld returned 1 exit status 生成已完成但出现错误 终端进程已终止退出代码: -1。 终端将被任务重用按任意键关闭。 解决办法
vscode 的 .vscode 的配置遵循父类文件夹优先的原则也就是说父文件夹的 .vscode 和子文件夹的 .vscode 优先访问父文件夹
最原始的 tasks.json 内容为这样它只适合于单文件生成也就是你把所有的代码写在一个 .cpp 文件里面。如果你在你的项目文件夹下新建子文件夹再把你的代码文件移动到子文件夹下对于你这种单文件而言下面的内容仍然不用改变。也能正常编译运行。因为 fileDirname 就是装你的代码文件所在的位置 args: [-fdiagnostics-coloralways,-g,${file},-o,${fileDirname}\\${fileBasenameNoExtension}.exe],对于分文件编写的程序需要改 tasks.json 里面的东西为下面的样子同理这样已经是正确的了即使你递归地建了100个子文件夹把程序放在里面下面的路径也不需要从根文件夹 \\ 到 100 个子文件夹后的位置。也就是说只要是分文件编写的项目按下面这样写就行了。因为 fileDirname 就是装你的代码文件所在的位置 args: [-fdiagnostics-coloralways,-g,${fileDirname}\\*.cpp,-o,${fileDirname}\\${fileBasenameNoExtension}.exe],之后使用 调试C/C文件 和 运行C/C文件 都没有问题但是 Run Code 会报错别管 Run Code 这个修改很复杂而且违背初心了原因如下
大型项目使用 调试C/C文件不要选择 Run Code因为 Run Code 是一个快捷工具主要由 Code Runner 插件提供。它执行一个预定义的命令通常是针对单个文件进行快速编译和运行。调试C/C文件 运行的是 VSCode 的 任务构建系统这需要通过 tasks.json 文件进行配置。所以我们可以在里面灵活地修改。
其实最好还是了解 c 编译过程会对上面为什么这样写有更深的感悟但是小白可能只想着快点解决错误。 特别鸣谢bmg的远程操作与指导 特别批评QuantumDusk的不作为