".text"部分中的cgo错误无法识别的重定位(0x2a)

Igo*_*gor 8 debian go cgo

使用Cgo构建Go程序时出现错误

/usr/lib/go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/usr/bin/ld: /tmp/go-link-373355991/000002.o: unrecognized relocation (0x2a) in section `.text'
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

尝试谷歌那个问题,并发现Debian和Ubuntu上的一些错误(https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=808205)与libc6(2.21)版本中的C编译器和链接器比我使用的版本更新(2.19).

还有提到编译C程序时遇到问题,我在C中成功编译了示例.

我尝试在具有相同系统和库版本的其他机器上构建我的Go程序,并且构建成功.

小智 2

检查您是否没有使用 ccache。即: echo $PATH 如果像 /usr/local/ccache 路径这样的东西先出现...请注意!ccache 尝试使用缓存来优化编译时间。如果您使用第一个编译器构建了一个库,然后尝试使用另一个编译器进行编译,那么您就会遇到此类重定位问题。

因此,请尝试清除 ccache : ccache -C 或简单地编辑 PATH,通过 export PATH=/usr/bin: ... 删除专用于 ccache 的路径

A++ 锡拉斯