我正在编写一个取决于Poco c++ library的软件。我可以设法在Ubuntu和Windows上编译库,但只能静态编译。这很好,因为我想静态使用它。然而,当我尝试编译所依赖的库程序,我得到类似这样(自由翻译)错误:将静态库链接到gnu g ++,没有这样的文件或目录
Poco/RegularExpression.h: No such file or directory.
然而,当我也明确告诉编译器到哪里寻找库的头与-I开关文件我碰到下面的错误,而不是(但也许20-30类似的路线):
Undefined reference to (pthread_mutex...)
我已经尝试了很多不同的组合,无论是直接与G ++,利用makefile文件。 我应该包括库的头文件的路径,或者我不知道如何成功地编译库正确? 如果我应该包含路径,我该如何摆脱“未定义的引用”错误?
我很新的C++编程,所以忍受着我。 谢谢,罗伯特
也许尝试加入'-lpthread'。看起来像在链接阶段缺少该库。 –
谢谢!它的工作,编译一个简单的测试。但是,这是正确的方式来链接和包含标题? – roggan87
不知道你的意思是“正确的方式”,但是,一般来说,你必须指定包含所有标题的包含目录,如'',并且必须链接到所有正在使用的库(或您正在使用的其他库正在递归使用)。 –