尝试从 64 位 linux 编译 32 位 linux 的 GTK 应用程序

Trying to compile GTK application for 32bit linux from 64bit linux

我正在尝试从 64 位 linux.

编译 32 位 linux 的 GTK 应用程序

当我运行这个命令时:

gcc main.c -m32 -mms-bitfields -o output/main `pkg-config --cflags --libs gtk+-3.0` && ./output/main

我收到这些错误:

/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

运行 Linux 薄荷 17.2 Rafaela.

我有所有需要的包,我什至包括了 -m32 选项,但它仍然不起作用。

还有一个类似的问题 here 没有公认的答案。

编辑:

下面接受的答案建议我安装 32 位版本的 libgtk-3-dev。如果不删除重要的系统包,我无法做到这一点。最后我求助于简单地使用安装了 32 位版本 libgtk-3-dev 的 32 位 linux 发行版。

你可以运行:

apt-get install libgtk-3-dev:i386

然后重新运行你的编译命令,它应该可以工作。如果上面的命令returns报错说找不到指定的包,你可能需要运行这个,然后重试:

dpkg --add-architecture i386

警告:如果上面的命令要求您删除软件包,请仔细阅读列表,如果列表包含重要的系统软件包或者您不确定,请不要继续。