我有一段运行 add_custom_target()
的 cmake,运行大约需要一分钟。在 cmake 上运行此命令时,只有在完成完整命令后才会打印标准输出。
-- Build files have been written to: C:/Soft_Dev/590008/JLSCONTROL/JLSOCSOURCE/MASTER/build
Building using cmake
Repo version is: v-0.1.0-902-gffaf1bb-dirty.
[1/2] cmd.exe /C "cd /D C:\myprogram\build && C:\pclint\lint4jsondb.exe --lint-binary pclp64.exe --jobs 10 -- std.lnt"
当我运行 cmd.exe/C "cd/D C:\myprogram\build && C:\pclint\lint4jsondb.exe --lint-binary pclp64.exe --jobs 10 -- std.lnt"
由我自己在终端中运行命令时将输出实时打印到标准输出。
cmake 是否缓冲标准输出?如果是这样,有没有办法停止它并让它在运行自定义命令时继续打印?
目前我没有使用任何特定的参数,只是目标的名称,然后是带参数的命令。
add_custom_target(LINT_WITH_PC_LINT ${PC_LINT_COMPILECOMMANDS_EXECUTABLE}
--compilation-db compile_commands.json
--lint-path ${PC_LINT_DIRECTORY}
--lint-binary ${PC_LINT_FILENAME}
--jobs 10
-- std.lnt ${PC_LINT_USER_FLAGS})
最佳答案
不确定这是否是您想要的,但您可以将“USES_TERMINAL”添加到您的自定义目标。
关于windows - cmake add_custom_target 在完成命令之前不会在 Windows 上打印到标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59356649/