与Sunstudio静态链接

时间:2009-05-13 19:19:47

标签: c++ static-libraries sunstudio

我正在尝试将我的库xxx链接到一个库yyy。我想静态链接,以便在我发送xxx时不需要将yyy与xxx打包在一起。我有第二方提供的两个版本的yyy:libyyy.so和libyyyln.a。所以我在这里和-lyyyln联系。

链接时我没有收到任何错误消息。当我执行“ldd libxxx.so”时,对yyyln的依赖性不会显示出来。但是“ldd -r libxxx.so”表明yyy中的符号未解析。 “nm libxxx.so”表示来自yyy的这些符号是UNDEF。

我错过了什么?

编辑1:我设法最终使用“-l /fullpath/libyyyln.a”开始工作

5 个答案:

答案 0 :(得分:3)

您希望将-Bstatic放在您想要静态链接的库前面。 挖掘the Solaris Linker and Libraries Guide以获取更多信息。

答案 1 :(得分:1)

您可以在Sun Studio论坛上提出此问题并直接从Sun Studio编译器团队获得答案

Sun Studio Forums(适用于C,C ++,Fortran和工具)

答案 2 :(得分:0)

我假设您使用的是gcc。默认情况下,如果可以,gcc将使用共享库(.so),因此您必须强制它与选项-static静态链接。

编辑:抱歉,我认为sunstudio是您要链接的库的名称,我忘了Sun Studio包含一个编译器。但是,对于sun studio来说,必须有类似的选择。

答案 3 :(得分:0)

答案 4 :(得分:0)

我设法最终使用“-l /fullpath/libyyyln.a”让它工作

我玩-Bstatic和-Bdynamic没有成功。解决方案真的和上面的内容一样简单。我应该早点想到它。