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

尝试从64位linux编译32位linux的GTK应用程序,linux,gcc,gtk,cross-platform,cpu-architecture,Linux,Gcc,Gtk,Cross Platform,Cpu Architecture,我正在尝试从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 fi

我正在尝试从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
运行LinuxMint17.2Rafaela

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

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

编辑:

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

您可以运行:

apt-get install libgtk-3-dev:i386
然后重新运行compile命令,它应该可以工作。如果上述命令返回错误,表示找不到指定的包,则可能需要运行此命令,然后重试:

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

您可以运行:

apt-get install libgtk-3-dev:i386
然后重新运行compile命令,它应该可以工作。如果上述命令返回错误,表示找不到指定的包,则可能需要运行此命令,然后重试:

dpkg --add-architecture i386

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

如何撤消
dpkg的效果--添加架构i386
,我尝试了
sudo dpkg--删除体系结构i386
,但出现了以下错误-
dpkg:错误:无法删除数据库当前使用的体系结构“i386”
是否删除了libgtk-3-dev:i386及其所有依赖项?我没有安装它。当它说要删除一堆软件包时,我停了下来,其中一个是桌面环境。找到了解决方案/说明。看
直接的实际效果是摆脱ia32 libs包,允许跨架构进行适当的跨架构依赖。
根据该wiki,
dpkg
在2011年成为multiarch aware。我如何撤销
dpkg——添加架构i386
的效果,我尝试了
sudo dpkg--删除体系结构i386
,但出现了以下错误-
dpkg:错误:无法删除数据库当前使用的体系结构“i386”
是否删除了libgtk-3-dev:i386及其所有依赖项?我没有安装它。当它说要删除一堆软件包时,我停了下来,其中一个是桌面环境。找到了解决方案/说明。看
直接的实际效果是摆脱了ia32 libs包,允许跨架构进行适当的跨架构依赖。
根据该wiki,
dpkg
在2011年成为了multiarch aware。