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

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

golang 與 cgo 拋出錯誤收集 2: 錯誤: ld 返回 1 退出狀態

golang 與 cgo 拋出錯誤收集 2: 錯誤: ld 返回 1 退出狀態

Go
慕妹3146593 2022-10-04 19:37:42
我正在編譯一個golang包,其中包括使用的共享c庫的集成。所有內容都在 docker 映像 中成功構建,但由于 (也) 它失敗并顯示錯誤:cgogolang:1.15.15golang:1.16.6golang:1.16.7golang:1.17/usr/bin/ld: src/foobar/lib/libXYZ.so: undefined reference to `feenableexcept'/usr/bin/ld: src/foobar/lib/libXYZ.so: undefined reference to `floor'.../usr/bin/ld: src/foobar/lib/libXYZ.so: undefined reference to `memoFree'/usr/bin/ld: src/foobar/lib/libXYZ.so: undefined reference to `memoMalloc'collect2: error: ld returned 1 exit status我檢查了 golang 發行說明,但找不到 的任何相關更改。cgo我檢查了gcc和ld的版本,這些都是不同的。我甚至用和設置了一個ubuntu發行版,在那里我遇到了這個問題,所以我想,這不會導致它。go1.13.8gcc (Ubuntu 8.4.0-3ubuntu2) 8.4.0GNU ld (GNU Binutils for Ubuntu) 2.34go您有任何線索或建議,我如何找到此問題的根本原因?檢查gcc和ld是否正確,或者哪些其他工具需要調查?
查看完整描述

1 回答

?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

多虧了Zyl,我才能夠縮小問題的范圍。

我檢查了幾個分布(靶心,破壞者,拉伸),并且使用靶心,構建失敗了。在我的情況下,既不是來自的版本,也不是導致問題的原因。ldbinutilsgcc

似乎,用于處理鏈接器標記的默認設置已更改。我解決了我的問題,從 https://stackoverflow.com/a/62117174/2290153 解決方案并添加到環境中。根據 https://manpages.debian.org/bullseye/binutils-common/gold.1.en.html 這是鏈接器的默認值,但不是 。DT_NEEDEDexport CGO_LDFLAGS=-Wl,--no-as-neededld.goldld

對我幫助很大的是命令的標志,以查看正在執行的gcc命令。-xgo buildcgo


查看完整回答
反對 回復 2022-10-04
  • 1 回答
  • 0 關注
  • 260 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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