c ++类包含未定义的引用

时间:2013-11-18 15:02:40

标签: c++ class object header include

我在更大的程序中构建类的实例时遇到了问题。

在我的主要功能中:

//main.cpp
#include "MyClass.h"

MyClass aMyClass;
//do stuff with MyClass

MyClass'标题在这一点上只是一个构造函数,如下所示:

//MyClass.h

class MyClass {
    public:
        MyClass();
};

MyClass'源代码看起来像这样,此时只是一个构造函数:

//MyClass.cpp
#include "MyClass.h"

//--CONSTRUCTOR--//
MyClass::MyClass(){
    cout << "constructing MyClass object..." << endl;
}

当我尝试运行我的程序时,我收到此错误:

undefined reference to `MyClass::MyClass()'
collect2: error: ld returned 1 exit status

修改: 我正在使用命令行使用以下命令编译程序:

g++ main.cpp -o mainProgram

编辑(已解决): 编译需要包含MyClass.cpp,正确的命令是:

g++ man.cpp MyClass.cpp -o mainProgram

虽然我确定它很小,但我在哪里滑倒?我已尝试在程序的早期声明对象,但这并没有解决问题,我得到了同样的错误。

有人在这里看到问题吗?

1 个答案:

答案 0 :(得分:7)

你还需要编译MyClass.cpp--这就是实现的地方。

g++ main.cpp MyClass.cpp -o mainProgram