gpt4 book ai didi

gcc - 在 64 位 Ubuntu 中构建 32 位应用程序

转载 作者:行者123 更新时间:2023-12-04 14:49:53 26 4
gpt4 key购买 nike

经过数小时的谷歌搜索,我决定放弃并咨询专家。我正在尝试在我的 64 位 Ubuntu 11.10 中构建一个 32 位应用程序(如果有人感兴趣,则为 xgap)。我添加了 CFLAGS=-m32 LDFLAGS=-L/usr/lib32 在生成文件中。这些对象被内置到 32 位精细中。最后一步是将 X 窗口的所有对象和库链接到这个可执行文件——xgap。不知何故,它不断给我这个错误:

gcc -o xgap xcmds.o utils.o gapgraph.o gaptext.o pty.o popdial.o xgap.o selfile.o   -L/usr/lib32 -lXaw -lXmu -lXt -lXext -lX11  -lSM -lICE

/usr/bin/ld: skipping incompatible /usr/lib32/libXmu.so when searching for -lXmu
...

/usr/bin/ld: i386 architecture of input file `xcmds.o' is incompatible with i386:x86-64 output
...

我已安装 ia32-libs 多库支持 .我想我只需要强制链接器生成 i386 输出。我试着放了两个 ld 我的 gcc 命令中的标志如上所示: -melf_i386 -oformat elf32-i386 .但是发生的情况是 gcc 不会在 中搜索 32 位库。/usr/lib32 了。我想知道是否需要按固定顺序放置这些标志?

感谢您的任何想法和帮助!

编辑 :当我在上一个 gcc 命令(我相信是链接阶段)中添加 -m32 标志时,即使我有 -L/usr/lib32 标志,gcc 也不再在/usr/lib32 中搜索(真的很奇怪...) 并产生以下错误:
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../libXaw.so when searching for -lXaw
/usr/bin/ld: skipping incompatible /usr/lib/libXaw.so when searching for -lXaw
/usr/bin/ld: cannot find -lXaw
collect2: ld returned 1 exit status

任何人都知道为什么会发生这种情况?我正在使用自动工具进行配置和制作。我真的很擅长修改那些脚本文件。

最佳答案

您需要使用 -m32 的链接以及。

gcc -m32 -o xgap xcmds.o utils.o gapgraph.o gaptext.o pty.o popdial.o xgap.o selfile.o   -L/usr/lib32 -lXaw -lXmu -lXt -lXext -lX11  -lSM -lICE

综合考虑,我认为你应该可以放弃 -L/usr/lib32使用时 -m32 .

关于gcc - 在 64 位 Ubuntu 中构建 32 位应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8421110/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com