使用CMake的详细NMake Makefile

mal*_*lat 5 nmake cmake

我一直在遵循常见问题解答中的说明:是否有选项可以产生更多"详细"编译?.我现在有了:

$ 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)
Run Code Online (Sandbox Code Playgroud)

然后我重新生成我的项目,然后运行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
Run Code Online (Sandbox Code Playgroud)

有没有办法访问完整的cl命令行?

Ser*_*lov 5

在 Windows(XP 或更高版本)上,命令行的长度限制为 8,191 字节。

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

所以 VERBOSE=1 在 Windows 上用处不大。但是您始终可以在生成的 *.make 文件中检查命令行

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

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