CMake Multiarchitecture Compilation
Chcę wiedzieć, jak mogę napisać konfigurację CMake, która pozwala na kompilację zarówno dla architektur x86, jak i x64 przy użyciu dowolnego kompilatora i systemu operacyjnego.
3 answers
Byłoby świetnie, gdyby CMake miał opcję 32/64bit po wyjęciu z pudełka. Tak nie jest, więc będziesz musiał zastosować jedną z różnych metod zależnych od kompilatora lub generatora. Np.:
GCC (na Linuksie) i kilka innych kompilatorów, np. Sun Studio. Ustaw
CFLAGS
iCXXFLAGS
na include-m32
(32-bitowa budowa) lub-m64
(64-bitowa Budowa).-
Windows, Visual Studio generator. Użyj 64-bitowego generatora, np.
cmake -G "Visual Studio 10 Win64" path\to\source\dir
Do kompilacji 64-bitowej (x64). Pomiń "Win64" w nazwa generatora, do zbudowania dla 32 bitów
-
Mac OS X. użyj zmiennej
CMAKE_OSX_ARCHITECTURES
CMake.cmake -DCMAKE_OSX_ARCHITECTURES=i386 /path/to/source/dir
będzie kompilować 32-bitowy buildcmake -DCMAKE_OSX_ARCHITECTURES=x86_64 /path/to/source/dir
skompiluje 64 bit.cmake "-DCMAKE_OSX_ARCHITECTURES=x86_64;i386" /path/to/source/dir
stworzy 96-bitowe uniwersalne binaria:)
Powyższe jest nieco przeredagowane.
Http://dev.mysql.com/doc/internals/en/compiling-for-different-hardware-achitectures.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-08 17:28:38
Istnieje CMake tutorial dostępny online, aby przejść do podstaw, jest to zaczerpnięte z książki CMake. Filozofia CMake polega na używaniu wielu katalogów kompilacji, z jednym drzewem źródłowym. Możesz więc użyć Visual Studio w systemie Windows i utworzyć katalog kompilacji przy użyciu kompilatora 32-bitowego, a drugi przy użyciu kompilatora 64-bitowego.
CMake jest przeznaczony dla dużej liczby kompilatorów i systemów operacyjnych, ale nie wspominasz, jakiego języka używasz, jakiego działania system / kompilator / architektury, o których myślisz i jeśli używasz zestawów narzędzi/bibliotek.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-19 00:39:15
Jeśli CMAKE_OSX_ARCHITECTURES = i386 wyświetli błąd "unrecognized option-arch" zacznij od nowa i zamiast tego spróbuj:
cmake -DCMAKE_SYSTEM_NAME=Darwin -DCMAKE_SYSTEM_PROCESSOR=i386 -DCMAKE_SYSTEM_VERSION=10
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-15 02:00:43