在其他博客中有提到这样的办法:VScode不是你Run代码就会自动保存,需要你先保存代码Ctrl+s,之后再运行即可。
发现该方法不适用我们的问题,故继续找解决办法。
运行测试代码
//swap.h文件
#include<iostream>
using namespace std;
//实现两个数字交换的函数声明
void swap(int a, int b);
//swap.cpp文件
#include "swap.h"
void swap(int a, int b)
{
int temp = a;
a = b;
b = temp;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
}
//main函数文件
#include "swap.h"
int main() {
int a = 100;
int b = 200;
swap(a, b);
system("pause");
return 0;
}
问题
undefined reference to `swap(int, int)’,即 无法链接到swap(int, int)。
这是因为VS code编译时只对main函数文件进行编译,而我们编写的函数分文件swap.cpp没有被编译,所以出现报错。
解决办法
将自己编写的函数分文件(本例中为swap.cpp)路径(在工程中找到自己写的文件点击右键复制路径,同时注意路径改为双斜杠 \)添加到tasks.json中
再次编译后,顺利运行。
Finished