hello.cpp:(.text+0x0): multiple definition of `main’
/tmp/cc1cVxpW.o:main.cpp:(.text+0x0): first defined here collect2:
error: ld returned 1 exit status
c++编译时经常看到该错误。
是因为main中已经包含了该头文件,然后编译又将该头文件包含了。如:
1 #include <iostream>
2 #include "first.cpp"
3 using namespace std;
4
5 int a = 10;
6
7 int main(){
8 cout << "a = " << a << endl;
9 getA();
10 return 0;
11 }
1 #include <iostream>
2 using namespace std;
3
4 extern int a;
5
6 void getA(){
7 cout << "a = " << a << endl;
8 }
编译语句:g++ -o main main.cpp first.cpp
此时应该将编译语句改为:g++ -o main main.cpp