컴파일러와 OS를 사용하는 x86 및 x64 아키텍처 용 컴파일을 허용하는 CMake 설치 방법을 알고 싶습니다.CMake 다중 아키텍처 컴파일
답변
CMake가 32/64bit 옵션을 가지고 있다면 좋을 것입니다. 그렇지 않으므로 다른 컴파일러 또는 생성기 종속 방법 중 하나를 적용해야합니다. 예 :
GCC (Linux) 및 기타 컴파일러. 썬 스튜디오
CFLAGS
및CXXFLAGS
을-m32
(32 비트 빌드) 또는-m64
(64 비트 빌드)으로 설정하십시오.Windows, Visual Studio generator. 64 비트 생성기 사용 (예 :
cmake -G "Visual Studio 10 Win64" path\to\source\dir
64 비트 (64)를 컴파일한다. 생성자 이름에 "Win64"를 생략하십시오. 32 비트 용으로 빌드하십시오.
Mac OS X
CMAKE_OSX_ARCHITECTURES
CMake 변수를 사용하십시오.
32 비트cmake -DCMAKE_OSX_ARCHITECTURES=i386 /path/to/source/dir
cmake -DCMAKE_OSX_ARCHITECTURES=x86_64 /path/to/source/dir
64 비트를 컴파일 구축 컴파일합니다.
96 비트 범용 바이너리 :cmake "-DCMAKE_OSX_ARCHITECTURES=x86_64;i386" /path/to/source/dir
위의 약간 재 진술되어 생성됩니다. CMAKE_OSX_ARCHITECTURES = I386가 당신에게 오류를 제공하는 경우
http://dev.mysql.com/doc/internals/en/compiling-for-different-hardware-achitectures.html
이것은 훌륭합니다! 그러나 Visual Studio의 경우 생성기이므로 -G가 아닌가? 또한 Visual Studio의 경우 CMakeLists.txt 파일에 어떤 플래그를 설정하여 자동으로 사용할지 (즉, i386 또는 x86-64를 선택하고 응답에 따라 설정하도록 요청) 플래그를 설정할 수 있습니까? – OniLink
-G이어야하며 생성기는 명령 줄에서 전달되어야합니다. Qt 기반 그래픽 인터페이스 인 cmake-gui를 사용하고 드롭 다운 목록에서 적절한 생성기를 선택할 수도 있습니다. –
@OniLink, @Marcus. 네, -G 여야합니다. 알았어 고마워요! 나는 그것을 고쳤으며 (또한 MySQL Wiki에서 같은 구절을 고쳤다). 내 knowlegde, CMakeLists 내부 비주얼 스튜디오에 대한 bitness을 변경하십시오.txt는 불가능합니다. 여기 비트는 생성자의 속성이며 생성기는 동적으로 설정/변경할 수 없습니다. –
온라인으로 CMake tutorial을 사용할 수 있습니다. 기본 사항은 온라인 CMake 책에서 가져온 것입니다. CMake의 철학은 하나의 소스 트리로 여러 빌드 디렉토리를 사용하는 것입니다. 따라서 Windows에서 Visual Studio를 사용하고 32 비트 컴파일러를 사용하여 빌드 디렉토리를 만들고 64 비트 컴파일러를 사용하여 빌드 디렉토리를 만들 수 있습니다.
CMake는 많은 컴파일러와 운영 체제를 대상으로하지만 어떤 언어를 사용하고 있는지, 어떤 운영 체제/컴파일러/아키텍처를 생각하고 있는지, 툴킷/라이브러리를 사용하고 있는지는 언급하지 않았습니다.
대답은 그 질문과 아무 관련이 없습니다. – Yola
"알 수없는 옵션 -arch"시작 대신 시도 :
cmake -DCMAKE_SYSTEM_NAME=Darwin -DCMAKE_SYSTEM_PROCESSOR=i386 -DCMAKE_SYSTEM_VERSION=10
- 1. Cmake 컴파일 오류
- 2. cmake 크로스 컴파일
- 3. cmake : 컴파일 통계
- 4. cmake : 다중 출력 구성으로 작업하기
- 5. CMake 컴파일 오류 .. (알 수없는 CMake 명령 "QT4_WRAP_UI")
- 6. cmake에서 컴파일 시간 아키텍처 감지
- 7. 아이폰 컴파일 아키텍처 : 최적화 된
- 8. cmake 설치 타겟의 컴파일 타임 와일드 카드
- 9. 다중 아키텍처, winusb 및 wix
- 10. CMake ... ccmake 또는 cmake?
- 11. CMake
- 12. CUDA, MySQL 및 CMake
- 13. 내 특정 CMake 프로젝트에서 CMake
- 14. 웹 서비스 아키텍처 - 다중 서비스 및 다중 데이터베이스 연결?
- 15. C++ 다중 파일 컴파일 프로세스
- 16. CMake 또는 make에서 컴파일 의존성을 출력하는 방법은 무엇입니까?
- 17. gettext 지원을위한 CMake 모듈?
- 18. CMake RequireAdministrator
- 19. cmake add_custom_command
- 20. CMake 하위 디렉토리 종속성
- 21. 다중 플랫폼 WiX 설치 프로그램에 아키텍처 종속 서비스 설치
- 22. 은 CMake 자산
- 23. Cmake : 포함 경로에 디렉토리 빌드
- 24. CMake 링크 스테이지 질문
- 25. cmake, print compile/link 명령
- 26. cmake : 프로그램의 여러 버전 빌드하기
- 27. 아키텍처
- 28. 아키텍처
- 29. 아키텍처
- 30. NVIDIA CUDA SDK 예제 컴파일 지원되지 않는 아키텍처 'compute_20'
을 아마 관련 : http://stackoverflow.com/questions/5280168/ Making-a-cross-platform-library-with-cmake –