CMakeLists.txt 파일에 다음 줄이 있습니다. Windows 7에서 CMake 3.5.2를 실행하고 Visual Studio 12 2013을 "기본 기본 컴파일러 사용"이있는 GUI 생성기로 사용합니다.CMake execute_process 명령은 어떻게 실행됩니까?
find_path(FORTRAN_DIR NAMES cdll.cpp fdll.f90 Makefile PATHS ../source)
execute_process(COMMAND make
WORKING_DIRECTORY ${FORTRAN_DIR})
이것은 정상적으로 실행됩니다.
정확히 어떻게 실행되고 있습니까 ?? 그것은 Windows에있어!
이전에 Windows에서 MSYS2 (MinGW)를 통해 Makefile을 컴파일했지만 그게 CMake가 사용하는 것이라면 어떻게해야할지 모르겠습니다.
편집 : 나는 CMakeLists.txt 파일에 execute_process(COMMAND uname -a)
을 넣어 MSYS_NT-6.1 MYCOMPUTERNAMEHERE 2.5.2(0.297/5/3) 2016-07-15 08:31 x86_64 Msys
을 얻었다. 그래서 나는 그것이 MSYS를 통해 실행되고 있다는 답변을 추측합니다 ... 그러나 CMake는 이것을 어떻게 알 수 있습니까?
The documentation는 말한다.
이"CMake 직접 모든 인수가 자식 프로세스에 그대로 전달되는 운영 체제 API를 사용하여 자식 프로세스를 실행> 일반으로 처리하는 등 없음 중간 쉘, 그래서 쉘 연산자를 사용하지 않습니다. 인수. "
그러나 나는 특히 내가 다음 줄을 사용하는 경우, I 출력으로 /usr/bin/make
를 얻을 수 있음을 고려하고, 무엇을 의미하는지 이해가 안 :
execute_process(COMMAND which make)
것은 무슨 일이 벌어지고, 및/또는 내가 어떻게 알아낼 수 어떤 환경/셸 /이 명령들이 실행되고 있습니까?
보인다. – Tsyvarev
그것은 이전에 (실제로 MSYS2를 사용하여) 컴파일하기 위해이 방법을 사용했기 때문에 의미가 있습니다. 그러나 CMake는 어떻게 사용하는지 알고 있습니까? –
아마도 MSYS2에서 cmake를 실행하거나 해당 환경 아래에 cmake를 설치해야합니다. – Tsyvarev