登录
首页 >  Golang >  Go问答

gccgo在AIX上编译时,生成的 .o 文件缺少 .go_export 部分

来源:stackoverflow

时间:2024-03-05 13:18:25 459浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《gccgo在AIX上编译时,生成的 .o 文件缺少 .go_export 部分》,聊聊,希望可以帮助到正在努力赚钱的你。

问题内容

我正在尝试在 AIX 上构建 gccgo (9.2),但现在面临一个我无法解决的问题。

机器:AIX 7.1,处理器类型:PowerPC_POWER7,CPU 类型:64 位,内核类型:64 位

错误:“./sync/atomic.gox 存在,但不包含任何 Go 导出数据”。

所以我查看了atomic.gox,它是空的。 (所有 .gox 文件都是空的)。 接下来我查看了atomic.gox 是如何创建的。该文件由 objcopy -j .go_exportsync/.libs/atomic.o 创建。因此,atomic.o 的 .go_export 部分用于创建atomic.gox。通过 objdump -satomic.o 我发现,atomic.o 没有任何 .go_export 部分,只有“.text、.data 和 .debug”。因此错误的行为位于创建 .o 文件时。为了创建atomic.o文件,我找到了以下行:

libtool:编译:/OS/COMPSRV/trunk/user1/src/gccgo-obj/./gcc/gccgo -B/OS/COMPSRV/trunk/user1/src/gccgo-obj/./gcc/ -B/opt/freeware/gcc9/powerpc-ibm-aix7.1.5.0/bin/ -B/opt/freeware/gcc9 /powerpc-ibm-aix7.1.5.0/lib/ -isystem /opt/freeware/gcc9/powerpc-ibm-aix7.1.5.0/include -isystem /opt/freeware/gcc9/powerpc-ibm-aix7.1.5.0/sys-include -O2 -g -I 。 -C -fgo-pkgpath=sync/atomic ../.././../gccgo-src/libgo/go/sync/atomic/doc.go ../.././../gccgo-src/libgo/go/sync/atomic/value.go -fPIC -o 同步/.libs/atomic.o

这些是我的配置参数:

语言=“--启用语言= go,c,c ++” 选项=“CC=/opt/freeware/bin/gcc --without-gnu-ar --without-gnu-as --with-gnu-ld --with-gmp-include=/usr/include/gmp --disable-bootstrap --with-gmp-lib=/usr/lib --with-mpfr-include=/usr/include /mpfr --with-mpfr-lib=/usr/lib --with-mpfr=/usr/include --with-mpc=/usr/include --disable-nls --disable-libquadmath --disable-libssp - -禁用-lto --禁用-libgomp" multilib="--启用-multilib" 共享=“--启用共享” 静态=“--启用静态”

更多信息: 我正在使用 gcc 8.3

编辑:

建议的解决方案:

  • 我添加了--enable-libgo,但错误仍然存​​在

解决方案


看起来可疑的一件事是您似乎没有传递 --enable-libgo 来配置。也许尝试一下看看是否有帮助?

终于介绍完啦!小伙伴们,这篇关于《gccgo在AIX上编译时,生成的 .o 文件缺少 .go_export 部分》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>