我正在使用Eclipse CDT的托管制作功能。使用动态库创建项目符合预期。但是boost_unit_test_framework应该静态链接,因为它包含主函数。在命令行中,将动态库和静态库混合链接不是问题。因此,这是一个有效的示例:
g++ -L../Debug -L../boost/lib -o "Test" ./Test.o -ldynLib -Wl,-Bstatic -lboost_unit_test_framework -Wl,-Bdynamic
动态库和标准库(如libc)是动态链接的,而boost_unit_test_framework是静态链接的。但是我该如何在项目的设置中输入这些信息呢?我找不到任何方法。
可能可以在每个项目中标记此库以进行静态链接,例如在全局位置中使用QNX使用的约定([手册])。可以使用LIBPREF_library和LIBPOST_library在指定库之前或之后添加选项。
更新:我仍然不知道如何解决所描述的问题。但与此同时,我已经从Managed Make切换到了CMake构建系统。另外,我现在正在使用Qt Creator,因为它能够索引boost并且在更新一些内部结构时不会冻结UI...
[手册] http://www.qnx.com/developers/docs/6.3.0SP3/neutrino/prog/make_convent.html#USEMAC