Cmake 在stdout上显示dir或echo等命令的EXECUTE\u进程输出
我希望在程序运行时,在stdout上直接看到由Cmake 在stdout上显示dir或echo等命令的EXECUTE\u进程输出,cmake,Cmake,我希望在程序运行时,在stdout上直接看到由EXECUTE\u进程命令启动的命令的输出 我有以下测试CMakeLists.txt文件 PROJECT(TEST) cmake_minimum_required(VERSION 2.8) EXECUTE_PROCESS(COMMAND dir) 当从命令行运行时,它会生成 D:\tmp\testCMake\_build>"c:\Program Files (x86)\CMake 2.8\bin\cmake.exe" . -- Config
EXECUTE\u进程
命令启动的命令的输出
我有以下测试CMakeLists.txt文件
PROJECT(TEST)
cmake_minimum_required(VERSION 2.8)
EXECUTE_PROCESS(COMMAND dir)
当从命令行运行时,它会生成
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
的输出
我知道我可以使用output\u变量
和ERROR\u变量
参数捕获输出。但是,这将在命令运行结束时提供结果
根据文件规定,输出通常应通过
如果没有选择输出或错误选项
给定输出将与共享
CMake的相应管道
过程本身
我正在Windows Vista上使用CMake 2.8.3,请尝试:
execute_process(COMMAND cmd /c dir)
相反。”dir'是一个内置的shell命令execute_process'需要一个*.exe文件名作为命令后的第一个参数。(或路径中的某些exe可用。)
事实上,如果您试图深入研究并找出您最初的execute\u进程调用的错误
execute_process(COMMAND dir RESULT_VARIABLE rv)
message("rv='${rv}'")
…您将获得以下输出:
rv='The system cannot find the file specified'
如果将“dir”传递给WIN32 CreateProcess调用,您将得到几乎相同的结果。您是对的。我没有检查。问题是它仍然没有出现在CMake GUI中,但我应该提出另一个问题。