使用eclipse的静态库链接问题

时间:2013-05-05 07:35:14

标签: c++ eclipse pthreads linkage

我有两个项目,一个用于创建静态库,另一个用于创建静态库。 第一个,创建一个名为liboutputdevice.a的文件。 当我构建它时,一切都顺利。

然后我的第二个项目使用上面的库, 包括#include "outputdevice.h" 和calles功能:

initdevice("sdfs");

在outputdevice.h上声明并在上面的静态库中进行了ipmlemented。 测试项目通过以下方式链接到第一个项目:Cross g ++ Linker,库和库搜索路径。

当我构建该项目时(测试人员,第二个),第一个是错误,Undefined reference to 'pthread create' 突然... (虽然我在第一个项目的编译过程中包含了-lpthread)。 有人可以说出问题所在吗?

1 个答案:

答案 0 :(得分:0)

您必须告诉编译器/ IDE包含文件的位置。请注意,库文件(通常使用.lib扩展名)和包含文件(.h或.hpp)不一样。虽然必须将库添加到链接器(正如您所做的那样),但也必须可以从项目基目录访问包含文件。 如果包含的主路径与项目的主路径不同,则必须告诉编译器,是否应该查找其他包含。 通常这是通过编译器调用的-I选项完成的,例如

g++ main.cpp -I path/to/other/includes/dir 

您也可以直接在IDE的项目首选项中进行设置。