这段简单的代码真的让我很难受,所以任何人都可以向我解释一下可能出了什么问题吗?我有一个简单的 cpp 文件,它使用头文件中包含的类。
库文件
namespace tnamespace {
class base{
virtual ~base() {};
};
class test/*: public base*/ {
public:
test();
test();
};
}
库.cxx
#include "lib.h"
namespace tnamespace{
test::test() {};
test::~test() {}
}
启动.cpp
#include <iostream>
#include <lib.h>
int main() {
tnamespace::test d;
return 0;
}
我使用 gcc 版本 4.1.2 20080704 并编译项目
g++ start.cpp -I./ext_lib -Wall
得到以下链接器错误
/tmp/ccK2v6GD.o:在函数“主”中:
start.cpp:(.text+0x7a): 未定义对 `tnamespace::test::test()' 的引用
start.cpp:(.text+0x88): 未定义对 `tnamespace::test::~test()' 的引用
collect2: ld 返回 1 个退出状态
我设法找到了解决方案。我忘了编译我的库。正确的 g++ 命令
g++ start.cpp ext_lib/lib.cxx -I./ext_lib -Wall