【发布时间】:2012-10-06 09:53:14
【问题描述】:
这段简单的代码真的让我很难受,所以谁能帮我解释一下可能出了什么问题?我有一个简单的 cpp 文件,它使用头文件中包含的类。
lib.h
namespace tnamespace {
class base{
virtual ~base() {};
};
class test/*: public base*/ {
public:
test();
test();
};
}
lib.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:在函数'main'中:
start.cpp:(.text+0x7a): 对 `tnamespace::test::test()' 的未定义引用
start.cpp:(.text+0x88): undefined reference to `tnamespace::test::~test()'
collect2: ld 返回 1 个退出状态
我设法找到了解决方案。我忘了编译我的库。正确的 g++ 命令
g++ start.cpp ext_lib/lib.cxx -I./ext_lib -Wall
【问题讨论】:
-
在命令行
g++ start.cpp lib.cxx -I./ext_lib -Wall或一些库中需要 lib.cxx...