Можно ли скомпилировать проект в 32-битном с cmake
и gcc
на 64-битной системе? Вероятно, да, но как мне это сделать?
Когда я попробовал это «невежественным» способом, без установки каких-либо параметров / флагов / и т.д., просто настройка LD_LIBRARY_PATH
поиска связанных библиотек в ~/tools/lib
нем, кажется, игнорировала это и смотрела только в подкаталогах с именем lib64 .
Ответы:
источник
-m32
в файлCFLAGS
, возможно, установивCMAKE_REQUIRED_FLAGS
.export
значит? Где это место? Файлы заголовков?makefile
? Нет, совершенно не ответ для меня как новичка.cmake
(однако в вашем случае, если у вас есть Makefile, вы будете использоватьmake
вместо него).Вкратце: используйте
-m32
флаг для компиляции 32-битного двоичного файла.Также убедитесь, что у вас установлены 32-разрядные версии всех необходимых библиотек (в моем случае все, что мне было нужно в Fedora, было glibc-devel.i386)
источник
sudo apt-get install gcc-multilib
В более поздних версиях CMake это можно сделать для каждой цели:
set_target_properties(MyTarget PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32")
Я не знаю, как сделать это глобально.
источник
cmake -D CMAKE_CXX_FLAGS=-m32 . && make
Для C ++ вы можете:
Это работает с cmake.
источник
Один из способов - настроить среду chroot. В Debian есть несколько инструментов для этого, например debootstrap.
источник
Для любого сложного приложения я предлагаю использовать контейнер lxc . Контейнеры lxc - это «что-то среднее между chroot на стероидах и полноценной виртуальной машиной».
Например, вот способ собрать 32-битное вино с использованием lxc в системе Ubuntu Trusty:
Вот вики-страница о том, как собрать 32-битное вино на 64-битном хосте с помощью lxc .
источник
atom
текстового редактора для 32-битной на 64-битной машине?