同时使用静态和动态链接库的Eclipse托管构建

3
我正在使用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

2个回答

2
动态库放在:链接器/库/库(-l)中 静态库放在:链接器/杂项/其他文件和对象中

谢谢你的回答。但是那个提示如何帮助我的问题呢?你能提供更多的信息吗?谢谢。 - Christian

2

我认为你不需要指定链接的类型。动态库无法静态链接,反之亦然。在我的一个项目中,在“项目属性”->“C / C ++构建” ->“设置”下,我将静态库和动态库都列在库中。它似乎可以正确识别它们的类型,并且无论哪种方式都可以正常链接。


问题在于所提到的库"boost_unit_test_framework"同时提供动态和静态两种库。我想要进行动态链接,除了这个库之外。但是我找不到一种可以明确设置单个库链接的方法(在托管C++项目中)。 - Christian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接