未定义的引用A :: A.

时间:2017-02-19 22:41:44

标签: c++ g++ linker-errors

这只是一个更大问题的简单例子。 我有头文件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文件,链接器不会抛出任何错误。但那不应该是解决方案。

希望你们能帮帮我。

0 个答案:

没有答案