我正在编译一个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是否正确,或者哪些其他工具需要调查?