亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在gcc中將靜態庫鏈接到動態庫

如何在gcc中將靜態庫鏈接到動態庫

慕勒3428872 2019-11-27 14:40:31
在gcc(g ++)下,我編譯了一個靜態.a(稱為some_static_lib.a)庫。我想將此.a文件鏈接(是正確的短語嗎?)到libsomeDyn.so我正在構建的另一個動態庫(稱為)中。雖然可以.so編譯,但我看.a不到.so使用nm命令的內容:/ usr / bin / g ++ -fPIC -g -O2 -Wall -Werror -pipe -march = pentium3 -mtune = prescott -MD -D_FILE_OFFSET_BITS = 64 -DLINUX -D_GNU_SOURCE -D_THREAD_SAFE -I ../..../。 ./../../../../ -I ../../../../../../../..// libraries -Wl,-rpath,/ usr / lib -o libsomeDyn.so some.o another.o some_static_lib.a -shared -Wl -x -Wl,-soname,libsomeDyn.so我看不出在功能some_static_lib.a下libsomeDyn.so。我究竟做錯了什么?
查看完整描述

3 回答

?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

靜態庫在鏈接時有特殊的規則。如果靜態庫中的對象提供了未解析的符號,則該對象只會添加到二進制文件中。


在Linux上,您可以使用--whole-archive鏈接器選項更改該行為:


g++ -Wl,--whole-archive some_static_lib.a -Wl,--no-whole-archive


查看完整回答
反對 回復 2019-11-27
  • 3 回答
  • 0 關注
  • 1250 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號