这只是一个更大问题的简单例子。 我有头文件a.h,代码如下:
class A {
public:
int a;
A(int b);
}
源文件a.cpp包含以下代码:
#include "a.h"
A::A(int b){
(*this).a = b;
}
也是一个main.cpp文件,它创建了一个类的实例:
#include "a.h"
int main () {
A *test = new A(5);
return 0;
}
我现在使用g ++(5.4)使用以下命令在Ubuntu上进行编译:
g ++ -o main main.cpp
所以现在的问题是我从Linker那里得到一个错误:
test.cpp :(。text + 0x21):对函数“A :: A(int)'
的未定义引用
所有文件都在同一目的地。 那么这里的解决方案是什么? 如果我在main.cpp中包含a.cpp文件,链接器不会抛出任何错误。但那不应该是解决方案。
希望你们能帮帮我。