2011-03-14 2 views
8

EXECUTE_PROCESS 명령으로 시작된 명령의 출력을 프로그램이 실행되는 동안 stdout에서 직접보고 싶습니다. 그것은이stdout에 dir 또는 echo와 같은 명령에 대해 EXECUTE_PROCESS 출력을 표시합니다.

D:\tmp\testCMake\_build>"c:\Program Files (x86)\CMake 2.8\bin\cmake.exe" . 
-- Configuring done 
-- Generating done 
-- Build files have been written to: D:/tmp/testCMake/_build 

내가 직접 콘솔에 dir의 출력을보고 싶습니다 생산 명령 줄에서 실행하면

나는 다음과 같은 테스트 CMakeLists.txt 파일

PROJECT(TEST) 
cmake_minimum_required(VERSION 2.8) 

EXECUTE_PROCESS(COMMAND dir) 

있습니다.

OUTPUT_VARIABLEERROR_VARIABLE 인수를 사용하여 출력을 캡처 할 수 있다는 것을 알고 있습니다. 그러나 명령 실행이 끝날 때 결과를 제공합니다. 경우 출력이 정상적으로

통과되어야하는 문서에 따르면

없이 OUTPUT_ * 또는 ERROR_ * 옵션 인 출력이 CMake 프로세스 자체 해당 파이프 공유되는 소정 .

execute_process(COMMAND cmd /c dir) 

대신 : 내가 CMake를 사용하고

답변

9

시도는 Windows Vista에서 2.8.3. 'dir'은 내장 쉘 명령입니다. 'execute_process'는 COMMAND 뒤에 첫 번째 인수로 * .exe 파일 이름을 필요로합니다. 당신이 ...

execute_process(COMMAND dir RESULT_VARIABLE rv) 
message("rv='${rv}'") 

을 파고와 원래 execute_process 호출 뭐가 잘못 됐는지 알아하려고하면 (또는 PATH에서 사용할 수있는 몇 가지의 exe.)

사실, ... 당신은 얻을 것이다 이 출력 :

rv='The system cannot find the file specified' 

는 WIN32 CreateProcess를 호출에 "디렉토리"를 통과하면 당신이 얻을했던 것과 거의이다.

+0

당신 말이 맞습니다. 나는 그것을 확인하지 않았다. 문제는 여전히 CMake GUI에 나타나지 않는다는 것입니다.하지만 다른 질문을해야합니다. – pkit

관련 문제