我的目标是查看有关调用的详细信息g++
直接调用cmake
从命令行。我不关心输出make
为了这个问题的目的。
根据官方常见问题解答 https://cmake.org/Wiki/CMake_FAQ#Is_there_an_option_to_produce_more_.27verbose.27_compiling.3F and 相关问题的已接受答案 https://stackoverflow.com/a/2673355/3934789,我应该确定CMAKE_VERBOSE_MAKEFILE:BOOL=ON
在我生成的中设置CMakeCache.txt
,例如传递命令行标志-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
。当我这样做时,它重新查询了一堆属性,但没有提供有关调用的额外信息。
然而,调用cmake
与旗帜--verbose=1
向我展示了我真正需要的东西。
这两个选项有什么不同的作用?是--verbose=1
不赞成或不鼓励?
不,这不是您链接的已接受答案和 CMake 常见问题解答所说的内容,否则我会感到惊讶。
准确地说,他们并没有说你should modify CMakeCache.txt
. 不要修改该文件,这不是一个好的做法,因为很容易犯错误.
如果您完全遵循两个消息来源的说法,即
cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON .
make
or
cmake .
make VERBOSE=1
您会看到编译和链接阶段的详细输出。
或者,如果您输入CMakeLists.txt
将以下行归档:
set( CMAKE_VERBOSE_MAKEFILE on )
在其中一种情况下您看不到输出的事实可能是由于之前缓存的配置造成的。
我建议您尽可能进行源外构建,这样在这种情况下,您只需删除构建目录即可摆脱每个 CMake 生成的文件和目录。
然后,您可以重新创建新的配置,而不会受到先前生成的配置和构建文件的干扰。
当然,我可能错了,你遇到了错误,但这似乎不太可能。
EDIT:那是因为在配置阶段您没有进行编译,即您没有使用 Makefile,这是命令行选项设置的。对于cmake
在项目构建的任何阶段(配置、编译、安装)自行命令。当您这样做时,它不会显示额外的配置信息cmake .
但当您运行时它应该显示额外的信息make
.
So CMAKE_VERBOSE_MAKEFILE
如果您想从 CMake 本身获取详细输出,则设置错误的选项。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)