-3
我有一个关于使用#include
ed文件中定义的类的简单问题。我有三个文件,class.cc,class.h和user.cc.我试图在文件user.cc中使用class.cc中定义的类,但出现了一个我想要理解的错误(不仅仅是解决方法)。如何用g ++构造另一个文件中定义的类?
以下是文件:
class.cc
class myclass {
public:
myclass() : nb(1) {};
int nb;
int myfunc();
};
int myclass::myfunc() {
return 42;
}
class.h
class myclass {
public:
myclass();
int nb;
int myfunc();
};
user.cc
#include <iostream>
#include "class.h"
int main() {
myclass example;
std::cout << example.myfunc() << "class works too.";
}
我要做的就是创建一个对象main.cc(main.o)和class.cc(clas s.o)和一个静态库class.a。然后,当我试图将所有与链接:
g++ -o user user.o class.a
我收到以下错误:
user.o:user.cc:(.text+0x15): undefined reference to `myclass::myclass()'
user.o:user.cc:(.text+0x15): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `myclass::myclass()'
collect2: error: ld returned 1 exit status
我明白,不知怎的,用户无法看到MyClass的构造函数定义在哪里,但我不明白为什么不...
非常感谢您的回答!我在这里是新来的,所以我可以问你为什么你认为这个问题已经被降低了? – 2014-08-30 07:32:01
您的问题可能因为缺乏兴趣而缺乏基础的C++编程。如果你是新手的c + +多少有点期待。准备好被降低很多。 – youdontneedtothankme 2014-08-30 11:48:19