Я занимаюсь разработкой движка для 3D-игр / графики / симуляции на 64-битной Ubuntu 12.04 LTS. 64-битная версия моего приложения прекрасно компилируется, связывается и выполняется. Однако я не могу создать 32-разрядную версию своего приложения. Я получаю следующие ошибки сборки:
ld : cannot find -lX11
ld : cannot find -lcairo
ld : cannot find -lpango
ld : cannot find -lfreetype
ld : cannot find -lfmodex
Я предполагаю, что у меня не установлены 32-битные версии некоторых библиотек. Однако, когда я ищу файлы с суффиксом -i386 или: i386 в «программном центре ubuntu», я ничего не вижу. Например, если я ввожу «libcairo» в поле поиска, оно показывает:
libcairo2
libcairo2-dev
libcairo2-doc
libcairo2-dbg
plus a other irrelevant files (bindings for other languages).
Независимо от того, как я выполняю поиск, я не вижу никаких имен пакетов, которые подразумевают 32-битные библиотеки.
Как именно мы должны разрабатывать 32-битные исполняемые файлы на 64-битной Linux около 2012 года и позже (в моем случае Ubuntu 12.04 LTS)?
Пакеты разработки обычно не зависят от архитектуры. В остальном, для получения библиотек i386 (32-разрядных) вам необходимо установить пакет ia32-libs
в центре программного обеспечения. Это должно автоматически включить все библиотеки i386, которые вам могут понадобиться (в зависимости от уже установленных 64-битных).