Windows 32 비트 (MSVC++ 사용)에서 C++로 소프트웨어를 개발하고 있지만 모든 플랫폼에서 소프트웨어를 사용할 수 있기를 원하기 때문에 내 빌드 생성기로 CMake.CMake를 사용하여 Linux를 타겟팅하는 Windows에서 교차 플랫폼 빌드
따라서 저는 아직 CMake의 초보자입니다. CMake 튜토리얼에서 코드 컴파일을 교차시키기 위해서는 먼저 대상 플랫폼을 시뮬레이트하는 툴체인을 호스트 플랫폼에 설치해야한다는 것을 이해합니다. 그런 다음이 툴체인이 제공하는 적절한 대상 플랫폼 C 및 C++ 컴파일러를 사용하여 CMake는 메이크 파일 등을 생성 할 수 있습니다.
이제 Win32 플랫폼에서 Linux 플랫폼 (GNU/Linux) 용 코드를 빌드하려고합니다. 나는 Cygwin과 결합 된 CMake를 사용하고 gcc와 g ++를 컴파일러로 사용하여 위의 절차를 시도했다. 그것은 잘 만들어진 makefile을 만들었고 Cygwin 터미널에서 "make"를했을 때, 생성 된 makefile은 "만들어졌다". 이제는 리눅스 플랫폼에서 실행되기를 기대했던 실행 파일을 얻었습니다. 하지만 리눅스에서는 오류가 발생합니다. bash는 바이너리 파일을 실행할 수 없습니다.
명령 파일 executablename을 사용하여 위의 절차에 의해 만들어진 실행 파일이 Windows 용 PE32 유형임을 깨달았습니다.
내 질문은 : cmake를 사용하여 크로스 플랫폼 구축 절차에 대한 올바른 이해가 있습니까? 아니면 Windows에서 다른 Linux 도구 체인을 사용하여 Linux ELF 실행 파일을 얻어야합니까? 내가 원하는 것을 나에게 줄 수있는 툴체인은 무엇입니까?
많은 감사
Setareh
저는 cmake에 대해 모르지만 qmake는 다른 플랫폼에 대해 "빌드 프로파일"을 가지고 있습니다. 어쩌면 cmake 문서에서 "대상 플랫폼"옵션을 검색해야합니다. –
http://metamod-p.sourceforge.net/cross-compiling.on.windows.for.linux.html – stijn
[내 컴퓨터의 qmake에 대한 mkspec 목록 예] (http://pastebin.com/raw.php ? i = 3mMjgC9p) –