使用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
尝试谷歌那个问题,发现Debian和Ubuntu上的一些错误(https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=808205)与libc6(2.21)版本中的C编译器和链接器比我使用的版本(2.19)更新.
还提到编译C程序时遇到问题,我在C中成功编译了示例.
我尝试在具有相同系统和库版本的其他机器上构建我的Go程序,并且构建成功.
解决方法
检查您是否使用ccache.
即:echo $PATH
如果/usr/local / ccache路径首先出现…请注意!
ccache尝试使用缓存来优化编译时间.
如果您使用第一个编译器构建了一个lib,然后尝试使用另一个编译器进行编译,则会遇到此类重定位问题.
即:echo $PATH
如果/usr/local / ccache路径首先出现…请注意!
ccache尝试使用缓存来优化编译时间.
如果您使用第一个编译器构建了一个lib,然后尝试使用另一个编译器进行编译,则会遇到此类重定位问题.
所以试着清除ccache:ccache -C
或者只需编辑PATH,通过export PATH = /usr/bin删除专用于ccache的路径:…
一个Thilas