我在更大的程序中构建类的实例时遇到了问题。
在我的主要功能中:
//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
虽然我确定它很小,但我在哪里滑倒?我已尝试在程序的早期声明对象,但这并没有解决问题,我得到了同样的错误。
有人在这里看到问题吗?
答案 0 :(得分:7)
你还需要编译MyClass.cpp--这就是实现的地方。
g++ main.cpp MyClass.cpp -o mainProgram