VS代码使用多个.cpp源文件构建c++程序



我在Linux Mint下安装了Microsoft VSCode,并打开了一个名为test1的文件夹,其中包含3个文件:

test.cpp-预先声明foo((bar(

当我编译test.cpp(在VSCode中使用F5启动调试(时,它失败了,因为未定义对foo的引用((bar的未定义引用。当我编译foo.cppbar.cpp时,它们都失败了,因为未定义对main的引用

我发现VS Code不会像以前在这里要求的那样使用多个.ccp源文件来构建c++程序,从中我发现我可以在VSCode中键入以下内容;终端";窗

g++test.cpp foo.cpp bar.cpp-o a.out
/a.out

。。。我的程序按预期编译和运行(但显然我无法进行任何调试(。


所以我想知道的是,在第一个例子中,我如何告诉VSCode编译并链接这两个额外的源文件

除非这会非常困难,否则我还希望得到一些关于如何进入任务的第二阶段的指导——将foobar编译为";图书馆";在test2文件夹(test1的同级(中处理项目时,我可以链接到的文件。

如果可能的话,我希望完全在VSCode环境的背景下实现这一点(也许我会考虑在未来的某个时候学习g++和makefile的复杂性(。

首先制作a.out文件,然后更改/.vscode/lauch.json文件。在该文件中,将"program": "whatever"更改为"program": "${workspaceFolder}/a.out",如果有"preLaunchTask": "C/C++: g++ build active file",,则剪切该行,然后按F5,调试器应该可以正常工作。

点击此处查看更多信息。

我发现,根据我在OP中链接到的问题,将默认输出文件(从test(覆盖到a.out对我没有特别的帮助。最后,我只是从…修改了.vscode/tasks.json中突出显示的元素。。。

"args":[
"-g">
">${file}">

。。。到…

"args":[
"-g">
"*.cpp",
quot;-o quot;,

使用VSCode按F5编译并运行程序,正如我所希望的那样。但我只想提一件我感到困惑的事情。输出程序文件简单地写为test1文件夹中的test(无扩展名((与3个源文件一起(。但是当我在VSCode中键入test+ENTER时;终端";窗口,我没有得到错误,但我没有从我的程序中得到预期的输出

原来这是因为(a(我忘了键入/测试和(b(在我的/usr/bin文件夹中有一个名为test的可执行文件(这显然与我无关;它的日期早于我安装Linux Mint的时候!(!

最新更新