【问题标题】:Compiling i386 binaries on amd64 Debian?在 amd64 Debian 上编译 i386 二进制文件?
【发布时间】:2014-08-23 05:18:05
【问题描述】:

我正在尝试在 64 位 Debian Stable 上构建 fsthost,但最后(链接)步骤失败:

m@debian:~/Downloads/fsthost-1.5.4$ make
winegcc -m32 -o fsthost32 amc_32.o jackamc_32.o fst_32.o gtk_32.o jackvst_32.o \
    jfst_32.o fxb_32.o fps_32.o vstwin_32.o cpuusage_32.o info_32.o \
    midifilter_32.o list_32.o -m32 -mwindows -L/usr/lib/i386-linux-gnu/wine \
    -lpthread -lX11 -ljack -lxml2 -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 \
    -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo \
    -lgobject-2.0 -lglib-2.0
/usr/bin/ld: cannot find -lX11
/usr/bin/ld: cannot find -ljack
/usr/bin/ld: cannot find -lxml2
/usr/bin/ld: cannot find -lgtk-3
/usr/bin/ld: cannot find -lgdk-3
/usr/bin/ld: cannot find -latk-1.0
/usr/bin/ld: cannot find -lgio-2.0
/usr/bin/ld: cannot find -lpangocairo-1.0
/usr/bin/ld: cannot find -lgdk_pixbuf-2.0
/usr/bin/ld: cannot find -lcairo-gobject
/usr/bin/ld: cannot find -lpango-1.0
/usr/bin/ld: cannot find -lcairo
/usr/bin/ld: cannot find -lgobject-2.0
/usr/bin/ld: cannot find -lglib-2.0
collect2: error: ld returned 1 exit status
winegcc: gcc failed
make: *** [fsthost32] Error 2
m@debian:~/Downloads/fsthost-1.5.4$

注意,这里使用的是winegcc,而不是gcc

所以,ld 声称没有libX11.so,让我们检查一下:

m@debian:~$ locate libX11.so
/usr/lib/i386-linux-gnu/libX11.so.6
/usr/lib/i386-linux-gnu/libX11.so.6.3.0
/usr/lib/x86_64-linux-gnu/libX11.so
/usr/lib/x86_64-linux-gnu/libX11.so.6
/usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
m@debian:~$ 

宾果!没有/usr/lib/***i386***-linux-gnu/libX11.***so***!当我手动添加从/usr/lib/i386-linux-gnu/libX11.so/usr/lib/i386-linux-gnu/libX11.so.6 的符号链接时,该行:

/usr/bin/ld: cannot find -lX11

显然ld的输出中消失

为什么i386-linux-gnu 目录中没有*.so 符号链接,我应该如何从这里开始?

【问题讨论】:

  • 你有没有想过如何克服这个问题?我也遇到了同样的问题。
  • @sudoman,如果我没记错的话,我在 32 位 chroot 中构建了它。但后来转移到了一个更健全的发行版 → NixOS。强烈推荐。

标签: c++ c gcc debian wine


【解决方案1】:

如果您有共享库但缺少似乎表明您已安装运行时库包但未安装开发库包的 *.so 符号链接。您为创建 i386-linux-gnu 目录而安装的软件包的名称是什么?我会搜索名称中包含“dev”或类似名称的相关软件包并尝试安装它们。

这里只是猜测,但您可能缺少的包是ia32-libs-dev

【讨论】:

  • 我确实安装了所有-dev:i386 版本。 :( 根据#debian @ Freenode 的建议,我设置了一个 i386 chroot 来编译应用程序。现在可以使用。:) 谢谢!
猜你喜欢
  • 2012-05-05
  • 2022-01-25
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多