1 //file_NO2:hello.cpp 2 #include<iostream> 3 #include"hello.h" 4 using namespace std; 5 hello::hello() 6 { 7 } 8 9 int hello::Display() 10 { 11 cout<<"Hello, World!\n"<<endl; 12 return 0; 13 }
1 //file_NO1:hello.h 2 #ifndef HELLO_H 3 #define HELLO_H 4 class hello{ 5 public: 6 hello(); 7 int Display(); 8 };
1 //file_NO3:myfirst.cpp 2 #include <iostream> 3 #include"hello.cpp" 4 using namespace std; 5 6 int main() 7 { 8 hello theHello; 9 theHello.Display(); 10 //cout<<"Hello"<<endl; 11 return 0; 12 }
编译出现如下错误
hello.o: In function `hello::hello()': hello.cpp:(.text+0x0): multiple definition of `hello::hello()' myfirst.o:myfirst.cpp:(.text+0x0): first defined here hello.o: In function `hello::Display()': hello.cpp:(.text+0x6): multiple definition of `hello::Display()' myfirst.o:myfirst.cpp:(.text+0x6): first defined here hello.o: In function `hello::hello()': hello.cpp:(.text+0x0): multiple definition of `hello::hello()' myfirst.o:myfirst.cpp:(.text+0x0): first defined here collect2: ld 返回 1
解决办法:
把myfirst.cpp中的#incldue”hello.cpp"改为#include“hello.h"即可。
哈哈,菜鸟开始学C++,这个错误比较低级,希望以后不会再犯了。