背景
想要在vscode中使用code runner来运行c++代码。 电脑已经安装了c++编译器,vscode中也安装了C/C++ 和 Code Runner这两个插件
问题描述
在 Run Code时,编译器生成了一个没有后缀的文件,而不是exe文件,从而无法运行程序。
文件管理器下看到是这样的
原因分析:
通过分析之后发现是编译的命令不对
原来的命令:
cd "f:\C++Code\wangdao\" ; if ($?) { g++ 2.2--1.cpp -o 2.2--1 } ; if ($?) { .\2.2--1 }
正确的命令:
cd "f:\C++Code\wangdao\" ; if ($?) { g++ 2.2--1.cpp -o 2.2--1.exe } ; if ($?) { .\2.2--1.exe }
解决方案:
- 打开vscode的设置,在搜索框输入
Code-runner: Executor Map
,打开settings.json文件
对cpp那一行进行修改,修改内容:
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt.exe && $dir$fileNameWithoutExt.exe",
接下来重新Run Code就搞定了。
比较一下两条指令的区别
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt.exe && $dir$fileNameWithoutExt.exe",
总结
- 其实这个问题还是困扰了我很久,一开始寻找问题的方向就不对,在网上搜索了很多内容还是没有找到相似的案例。有时候,自己主动去分析问题,或许也能够找到解决问题的关键所在呢,毕竟在分析的过程中,自己解决问题的这种思维能力也在培养。
- 其实我也不清楚为什么我安装的插件Code Runner配置的cpp编译指令是这样的?这条指令好像在linux下可以执行(暂时还没有去验证),但是在windows下看来是不行的。