C++ 与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中的这些符号未定义 那么我错过了什么C++ 与Sunstudio的静态链接,c++,static-libraries,sunstudio,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中的这些符号未定义 那么我错过了什么 Edit1:我最终设法让它与“-l/full
Edit1:我最终设法让它与“-l/fullpath/libyyyln.a”一起工作,我假设您使用的是gcc。默认情况下,如果可以,gcc将使用共享库(.so),因此您必须强制它使用选项-static静态链接
编辑:对不起,我以为sunstudio是您试图链接的库的名称,我忘了sunstudio包含一个编译器。但是,sun studio必须有一个类似的选项。我假设您使用的是gcc。默认情况下,如果可以,gcc将使用共享库(.so),因此您必须强制它使用选项-static静态链接 编辑:对不起,我以为sunstudio是您试图链接的库的名称,我忘了sunstudio包含一个编译器。但是,sun studio必须有一个类似的选项。看看这是否有帮助: 看看这是否有帮助:
您想将
-Bstatic
放在您想要静态链接的libs前面。
深入了解更多信息。您想将
-Bstatic
放在需要静态链接的libs前面。
深入了解更多信息。您可以在Sun Studio论坛上提出这个问题,并直接从Sun Studio编译器团队获得答案
(对于C、C++、FORTRAN和工具)
< P>你可以在Sun工作室论坛上提出这个问题,直接从Sun工作室编译团队得到答案。(对于C、C++、FORTRAN和工具)
< P>我最终用“-L/PultPosie/LyByyLn”A()使它工作。我使用了-Bstatic和-Bdynamic,但没有成功。解决方案实际上和上面写的一样简单。我应该早点想到它。我最终设法让它与“-l/fullpath/libyyln.a”一起工作 我使用了-Bstatic和-Bdynamic,但没有成功。解决方案实际上和上面写的一样简单。我早该想到的