我正在 64 位 ubuntu 12.04 LTS 上开发 3D 游戏/图形/模拟引擎。我的应用程序的 64 位版本可以正常编译、链接和执行。但是,我无法构建应用程序的 32 位版本。我收到以下构建错误:
ld : cannot find -lX11
ld : cannot find -lcairo
ld : cannot find -lpango
ld : cannot find -lfreetype
ld : cannot find -lfmodex
我的假设是,我没有安装某些库的 32 位版本。但是,当我在“ubuntu 软件中心”中查找带有 -i386 或 :i386 后缀的文件时,我没有看到任何文件。例如,如果我在搜索字段中输入“libcairo”,它会显示:
libcairo2
libcairo2-dev
libcairo2-doc
libcairo2-dbg
plus a other irrelevant files (bindings for other languages).
无论我如何搜索,我都看不到任何暗示 32 位库的包名称。
那么,我们究竟应该如何在 2012 年左右及以后的 64 位 Linux 上开发 32 位可执行文件(在我的情况下是 ubuntu 12.04 LTS)?
答案1
开发包通常与体系结构无关。对于其他所有内容,要获取 i386(32 位)库,您需要ia32-libs
在软件中心安装软件包。这应该会自动提取您可能需要的所有 i386 库(取决于已安装的 64 位库)。