背景
c++工程的组织方式
在较大的工程中,往往会采用如下方式: 将函数声明放在头文件,如myplus.h
#include<iostream>
#include<cstring>
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<iostream>
#include<cstring>
#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<iostream>
#include<cstring>
#include<vector>
#include <iterator>
#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函数!!
settings.json中更改
完成上述更改后,可以成功编译,但是不能直接运行,因此做如下更改: 将$filename改为*.cpp即可。此后可以直接使用运行按钮进行运行。
|