我刚刚安装了MinGW和Eclipse并试图编写一个非常简单的Demo,我使用Project来构建可执行文件并为Class添加了两个文件。它实际上生成两个对象,text.o(带main的函数)和MyClass.o。但是我得到了错误,我认为链接似乎有问题:
12:23:24 ****增量构建配置项目测试调试**** 信息:内部构建器用于构建
g ++ -O0 -g3 -Wall -c -fmessage-length = 0 -o" src \ MyClass.o" " .. \ SRC \ MyClass.cpp"
g ++ -O0 -g3 -Wall -c -fmessage-length = 0 -o" src \ test.o" " .. \ SRC \ TEST.CPP"
g ++ -o test.exe" src \ test.o" " SRC \ MyClass.o"
src \ MyClass.o:MyClass.cpp :(。rdata $ .refptr._ZN7myClass13myInternalVarE [.refptr._ZN7myClass13myInternalVarE] + 0x0):未定义对`myClass :: myInternalVar'
的引用collect2.exe:错误:ld返回1退出状态
MyClass Headerfile:
#ifndef MYCLASS_HPP_
#define MYCLASS_HPP_
class myClass{
private:
static int myInternalVar;
protected:
public:
myClass();
myClass(int initVal);
~myClass();
void set(int value);
int get();
};
#endif /* MYCLASS_HPP_ */
MyClass Sourcefile:
#include "MyClass.hpp"
myClass::myClass()
{
}
myClass::myClass(int initVal)
{
}
myClass::~myClass()
{
}
void myClass::set(int value)
{
myClass::myInternalVar = value;
}
int myClass::get()
{
return myClass::myInternalVar;
}
测试来源:
using namespace std;
#include <iostream>
#include "MyClass.hpp"
int main() {
myClass* myClass_object = new myClass( 33 );
int i = 0;
cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
i = myClass_object->get();
cout << "Value is: " << i << endl;
return 0;
}
我试图找到解决方案;我不认为代码是错的,而是日食中的环境。任何人都可以提供帮助,我刚刚开始使用MinGW和eclipse进行编程,并且令人沮丧的是这样一个简单的例子失败了。
非常感谢,
塞巴斯蒂安