VS Code中C++多文件的编译

VS Code中C++多文件的编译

本文所解决问题的前提:

1.VS Code安装了对应的C/C++插件以及Code Runner插件。(不过相信写C++的应该都安装了吧)
2.对于单文件的编译用Run Code没有问题。

1.问题

  ​在用VS Code写C++的时候,定义了一个swap.cpp,main.cpp以及swap.h,然后在运行的时候发现它一直显示 undefined reference to `swap(int&, int&) 以及collect2.exe: error: ld returned 1 exit status’
在这里插入图片描述

  ​一开始我以为是自己的工程或文件出了问题,后面发现其实不是。因为如果我手动用g++对swap.cpp,main.cpp进行编译并生成可执行文件的话还是可以运行的。(g++ -g .\main.cpp .\swap.cpp -o out 这一句可以生成名字为out.exe的可执行文件。 .\out.exe 再输入这一句话就可以让程序进行运行。)
在这里插入图片描述

2.原因

  ​根据问题的描述可以得知,代码写的是没有问题的,而问题就出现在了编译运行。通过查资料得知用Run Code运行代码在默认情况下它只会对单文件进行编译,也就是说我在点代码运行的时候整个工程只对main.cpp进行编译。(swap.cpp内心:”我不配??“)
  ​所以我对Run Code重新进行了配置。

3.解决方案

  ​(1)首先打开VSCode的设置(对应图中的①),并在拓展中找到Run Code configuration(对应图中的②)中的Executor Map(对应图中的③)。再点击settings.json(对应图中的④)。

在这里插入图片描述

  ​(2)打开之后就可以看到json文件长下面这样。

在这里插入图片描述

  (3)​这时候再到中间输入code-runner.executorMap,选中第一个然后回车。

在这里插入图片描述

  (4)可以看到这里有很多配置,可以看到cpp那一行写了g++ $fileName,这就表示g++命令在运行的时候就只执行了一个文件。

在这里插入图片描述

  ​(5)此时需要把$fileName改成*.cpp(表示编译所有后缀为.cpp的文件),再进行保存 。关于C语言的编译也可以用这种方法,把上面那一行关于C的配置改了。

在这里插入图片描述

  ​(6)接下来再用Run Code运行main.cpp就可以成功了!!

在这里插入图片描述

  • 11
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值