Makefile 如何启用多行日志而不是单行进度日志
以下是我的cmake的示例输出: 2017/10/27 07:51:46平台被覆盖为“RHEL5_64”Makefile 如何启用多行日志而不是单行进度日志,makefile,cmake,Makefile,Cmake,以下是我的cmake的示例输出: 2017/10/27 07:51:46平台被覆盖为“RHEL5_64” --cmake版本:3.2.3 --配置完成 --生成已完成 --生成文件已写入:/local/home/etc [3/3]链接CXX共享库libsample_z.so 最后一行实际显示了进度(如[3/3]所示),因此被就地覆盖;因此,我无法看到所有日志(即消息对应于[1/3]和[2/3])。我希望cmake打印所有日志以保持其自己的行,如: 链接CXX共享库libsample_x.so 链
--cmake版本:3.2.3
--配置完成
--生成已完成
--生成文件已写入:/local/home/etc
[3/3]链接CXX共享库libsample_z.so 最后一行实际显示了进度(如[3/3]所示),因此被就地覆盖;因此,我无法看到所有日志(即消息对应于[1/3]和[2/3])。我希望cmake打印所有日志以保持其自己的行,如: 链接CXX共享库libsample_x.so
链接CXX共享库libsample_y.so
链接CXX共享库libsample_z.so 在cmake中可以这样做吗?ninja的“问题”是,如果您在shell中运行,它可以替换行中的进度输出。截至2017年10月,没有命令行开关或环境变量可以改变这种行为 由于它检查控制台的输出缓冲区,我发现在我的Windows控制台的其他地方管道输出会再次显示多行输出。因此,我使用了以下管道命令:
cmake -G "Ninja" ..
cmake --build . > CON
注意:只有在脚本中没有此调用,而脚本需要将
stdout
输出本身重新传输到日志文件中时,此调用才会起作用。这意味着在执行此管道命令后,输出不再处于标准状态。来自《忍者》(man ninja):
-v show all command lines while building
你会使用忍者吗?我对
ninja
也有同样的问题。我认为是的,因为我看到“ninja:no work to do”时不需要构建。不,这将显示所有命令的内容,但不显示注释。如果您确实想在stdout上看到输出(似乎很明显),请使用cmake--buildtee/dev/null
其中dev/null可以是包含输出的文件名。这通常会禁用颜色输出(来自编译器警告等)