使用CMake创建冗长的NMake Makefiles

6

我一直按照FAQ中的说明进行操作:有没有办法生成更详细的编译信息?。现在我已经:

$ cat C:/Program Files/CMake 2.8/share/cmake-2.8/Modules/Platform/Windows.cmake
[...]
# uncomment these out to debug nmake and borland makefiles
set(CMAKE_START_TEMP_FILE "")
set(CMAKE_END_TEMP_FILE "")
set(CMAKE_VERBOSE_MAKEFILE 1)

我接着重新生成我的项目,然后运行nmake命令:

> cmake --version
cmake version 2.8.12.2

> cmake -G"NMake Makefiles" ..\project
> nmake VERBOSE=1
[...]
[ 73%] Building CXX object apps/foobar/CMakeFiles/bla.dir/my.cpp.obj
    cd C:\Dashboards\MyTests\project-build-debug-vista32-nightly\apps\foobar
    C:\PROGRA~1\MICROS~1.0\VC\bin\cl.exe  @C:\Users\voxxl\AppData\Local\Temp\nm1362.tmp

有没有一种方法可以访问完整的cl命令行?


C:\Users\voxxl\AppData\Local\Temp\nm1362.tmp 里面有什么东西吗? - Angew is no longer proud of SO
nm1362.tmp:没有这个文件或目录。 - malat
对我而言,取消上面显示的三行注释就解决了问题。一旦取消注释,完整的cl命令行就会显示出来。或许这是在原始帖子发布后被修复的。 - Andreas
更新的常见问题解答链接:https://gitlab.kitware.com/cmake/community/wikis/FAQ#is-there-an-option-to-produce-more-verbose-compiling - Flash Sheridan
1个回答

6

在Windows操作系统(XP或更高版本),命令行长度限制为8,191个字节。

Windows编译器工具集通过允许在命令行上使用@filepath语法来解决此问题。

因此,在Windows上,VERBOSE=1的用途较少。但您始终可以检查生成的*.make文件中的命令行。

例如(问题中使用的路径):

apps/foobar/CMakeFiles/bla.dir/build.make apps/foobar/CMakeFiles/bla.dir/flags.make


我们如何为Visual Studio生成器启用详细日志记录? - Gautham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接