在amd64 Debian上编译i386二进制文件?

时间:2014-07-02 12:07:19

标签: c++ c gcc debian wine

我试图在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的输出中消失

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

1 个答案:

答案 0 :(得分:0)

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

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