- 背景
- c++工程的组织方式
- 在vs code中直接实现
- 解决方法
- tasks.json中更改
- settings.json中更改
在较大的工程中,往往会采用如下方式:
将函数声明放在头文件,如myplus.h
#include#include using namespace std; #ifndef _MYPLUS_H #define _MYPLUS_H string myplus(string &a, string &b); int myplus(int a, int b); #endif
头文件中只放声明,如函数声明。函数实现放在相应的cpp文件中,并引用相应的头文件,如myplus.cpp
#include#include #include "myplus.h" using namespace std; string myplus(string &a,string &b){ return (a + b); } int myplus(int a,int b){ return (a + b); }
主函数main.cpp中包含相应的函数头文件后,就可以对函数进行调用。
#include#include #include #include #include "myplus.h" using namespace std; int main(){ string a = "hello "; string b = "world!"; int c = 1; int d = 2; string outc=myplus(a, b); int outi = myplus(c, d); cout << "outc=" << outc << endl; cout << "outi=" << outi << endl; cin.get(); return 0; }
但是上述方法,只对main进行编译是不行的,不能实现对函数的调用,因此需要对main函数cpp文件和函数cpp文件一起编译,命令行可以使用如下:
g++ myplus.cpp main.cpp在vs code中直接实现
多数博客提供的vs code编写c++中的配置使之不能实现多个cpp文件编译和运行,后来有的博客提出的支持多个CPP文件编译的解决方法成功的实现了多文件编译,但是仍然不能运行。解决如下:
解决方法 tasks.json中更改
将${file}更改为选中部分,使之编译所有cpp文件。注意:变更之后本工程内不能出现多个main函数!!
完成上述更改后,可以成功编译,但是不能直接运行,因此做如下更改:
将$filename改为*.cpp即可。此后可以直接使用运行按钮进行运行。



