簡體   English   中英

與Sunstudio的靜態鏈接

[英]Static linking with 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。

那我想念什么呢?

Edit1:我設法使其最終與“ -l /fullpath/libyyyln.a”一起使用

您想將-Bstatic放在要進行靜態鏈接的庫的前面。 有關更多信息,請參閱《 Solaris Linker and Libraries Guide》

您可能在Sun Studio論壇上提出了這個問題,並直接從Sun Studio編譯器團隊獲得了答案。

Sun Studio論壇 (適用於C,C ++,Fortran和工具)

我假設您正在使用gcc。 默認情況下,gcc會使用共享庫(.so)(如果可以),因此必須強制它與選項-static靜態鏈接。

編輯:對不起,我以為sunstudio是您要鏈接的庫的名稱,我忘記了Sun Studio包含編譯器。 但是,sun studio必須有一個類似的選擇。

我設法使其最終與“ -l /fullpath/libyyyln.a”一起使用

我玩過-Bstatic和-Bdynamic都沒有成功。 該解決方案確實和上面寫的一樣簡單。 我早該想到的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM