Eclipse使用静态和动态链接库同时管理make

时间:2012-01-02 22:38:18

标签: g++ makefile static-libraries eclipse-cdt dynamic-library

我正在使用Eclipse CDT的托管make功能。使用仅动态库创建项目正在按预期工作。但是boost_unit_test_framework应该静态链接,因为它包含main函数。在命令行中,链接到混合中的动态和静态库不是问题。所以这是一个有效的例子:

g++ -L../Debug -L../boost/lib -o "Test" ./Test.o -ldynLib -Wl,-Bstatic -lboost_unit_test_framework -Wl,-Bdynamic

dynlib和libc等标准库是动态链接的,boost_unit_test_framework是静态链接的。但是如何在项目设置中输入此信息?我看不出任何办法。

可以在每个项目中标记此库以进行静态链接,例如在全局位置。有QNX使用的约定([手册])。可以使用LIBPREF_library和LIBPOST_library在指定的库之前或之后添加选项。

更新 我仍然不知道如何解决所描述的问题。但与此同时,我已将构建系统从Managed Make切换到CMake。此外,我现在正在使用Qt Creator,因为它能够索引boost并且在更新某些内部结构时不会冻结UI ...

[manual] http://www.qnx.com/developers/docs/6.3.0SP3/neutrino/prog/make_convent.html#USEMAC

2 个答案:

答案 0 :(得分:2)

我认为您不需要指定链接类型。动态库无法静态链接,反之亦然。在我的一个项目中,在项目属性下 - > C / C ++ Build - >设置,我在库下列出了静态和动态库。它似乎可以解决它们的类型,无论如何都可以很好地链接。

答案 1 :(得分:2)

动态库进入:链接器/库/库(-l) 静态库进入:链接器/杂项/其他文件和对象