在VS Code中,在C或C++项目上按F5和单击运行按钮(右上角)有什么区别?

whitzsjs  于 9个月前  发布在  其他
关注(0)|答案(1)|浏览(168)

我最近能够在我的Linux笔记本电脑上安装raylib,我遇到了一点麻烦,因为我对编译器不太满意,但是在使用raylib中的VS Code项目模板并编辑.vscode目录中的一个文件后,它工作了。按F5编译并在调试器模式下运行该项目。但是当我尝试单击UI按钮使用GCC和一堆其他选项运行它时,向下菜单,它不编译,并给出了一堆未定义的函数错误。
我想知道的是按下F5和按下“运行C代码”播放按钮之间的区别,F5似乎可以毫无问题地编译所有代码,按下“运行C代码”播放按钮的选项都不起作用,并且都会导致未定义的函数错误。根据VS Code,F5“运行”代码,但我不知道它到底做了什么,以及它遵循的命令,以及为什么它与“运行C/C++代码”按钮不同。
x1c 0d1x的数据
The project template that I used

bd1hkmkf

bd1hkmkf1#

假设你只安装了C/C扩展,而没有其他东西也有助于构建和运行C或C程序,
假设你没有改变你的默认VS Code键绑定的方式改变这一点,相关的默认VS Code键绑定F5在这里是这样的:

{
  "key": "f5",
  "command": "workbench.action.debug.start",
  "when": "debuggersAvailable && debugState == 'inactive'"
},

字符串
该命令将启动所选的启动配置。与按下运行和预览视图中的运行按钮相同(是的,有两个播放按钮做不同的事情。是的,这很混乱)。
至于工作台右上角的run按钮,它也是由C/C++扩展提供的,并为您提供调试选项(使用调试器运行)或运行(不使用调试器运行)当前文件(至少,在默认情况下,这是它的目的)。单击该按钮应该会出现一个菜单,您可以选择如何构建和调试,并且它至少包含几个“检测到”/自动生成的选项,这些选项基于您在计算机上常见位置安装的构建工具。
使用这些菜单中检测到的/自动生成的选项可能无法构建,因为它们的编译/链接标志与正确构建程序所需的标志不匹配。例如,编译多个源文件并将它们的目标文件链接在一起。
但是你可以在菜单中添加选项,并且你可以通过定义默认的构建任务来给予按钮默认的行为。关于这方面的更多信息,请参阅我对What's the difference between the "Debug C/C++ File", "Run Code", and "Run C/C++ code" buttons in visual studio code?的回答。如果你需要从多个源文件构建一个程序,请参阅VS Code will not build c++ programs with multiple .cpp source files
最后,我建议您学习CMake,这样您就可以以跨平台的方式配置构建,并且基本上独立于开发人员工具当你的程序规模越来越大的时候,编译会比总是重新编译所有的东西更有效率,即使是在不需要的时候(你配置CMake来生成buildsystems,这些buildsystems会知道什么时候需要重新编译源文件,什么时候需要重新编译可执行文件或库)。

相关问题