gcc庫的鏈結順序導致編譯出錯的問題

2021-08-26 22:56:17 字數 623 閱讀 6781

當乙個庫為基本庫時,需要將該庫放到引用它的庫的後面進行鏈結,方能得到正確結果。

例如在ob中:

ldadd = $(top_builddir)/src/mergeserver/libmergeserver.a \

$(top_builddir)/src/common/libcommon.a \

$(top_builddir)/src/common/btree/libbtree.a \

$/lib/libtbnet.a \

$/lib/libtbsys.a

sys最基礎,net、btree次之,最後才是mergerserver。

如果換成下面的順序,將會出錯,爆出大量的undefined reference:

ldadd = $(top_builddir)/src/mergeserver/libmergeserver.a \

$/lib/libtbnet.a \

$/lib/libtbsys.a

$(top_builddir)/src/common/libcommon.a \

$(top_builddir)/src/common/btree/libbtree.a \

原因:

多個PCL庫導致編譯出錯的問題

背景 之前的乙個程式,編譯木有問題,各種鏈結庫也都ok。之前編譯時,會出現2個警告 現在,編譯居然不出現這兩個警告,但是,鏈結庫出問題,導致編譯不通過。in function pcl pointcloud operator pcl pointcloudconst register clouds.cp...

Gcc編譯出錯處理 openssl 依賴問題

出錯資訊 error dereferencing pointer to incomplete type rsa 原因 由於預設使用了openssl 1.1.x 版本,導致的api不一致引起 解決 1,直接安裝openssl1.0版本,debian 系 apt get install libssl1....

編譯出錯的可能情況

編譯器的一部分工作是尋找程式文字中的錯誤。編譯器沒有能力檢查乙個程式是否 按照其作者的意圖工作,但可以檢查形式 form 上的錯誤。下面列出了一些最常見的 編譯器可以檢查出的錯誤。語法錯誤 syntax error 程式設計師犯了c 語言文法上的錯誤。下面程式展示了一些常 見的語法錯誤 每條注釋描述...