我正在使用 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,因为它能够索引提升并且在更新一些内部结构时不会冻结 UI ...
[手册] http://www.qnx.com/developers/docs/6.3.0SP3/neutrino/prog/make_convent.html#USEMAC