gpt4 book ai didi

cmake - 为什么 `cmake --verbose=1` 给出详细的 cmake 输出而 `cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON` 没有?

转载 作者:行者123 更新时间:2023-12-04 18:28:58 34 4
gpt4 key购买 nike

我的目标是查看有关调用 g++ 的详细信息由 cmake 直接调用从命令行。我不关心 make 的输出就这个问题而言。

根据official FAQthe accepted answer on a related question , 我应该确定 CMAKE_VERBOSE_MAKEFILE:BOOL=ON在我生成的 CMakeCache.txt 中设置,例如传递命令行标志 -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON .当我这样做时,它重新查询了一堆属性,但没有提供有关调用的额外信息。

但是,调用 cmake带有标志--verbose=1向我展示了我所需要的。

这两个选项有什么不同?是 --verbose=1被弃用或以其他方式不鼓励?

最佳答案

不,这不是您接受的答案和链接的 CMake FAQ 所说的,否则我会感到惊讶。
准确地说,他们并没有说你应该修改 CMakeCache.txt . 不要修改那个文件,这不是一个好习惯,因为很容易出错 .
相反,如果您完全按照两个消息来源所说的话,即

cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON .
make

或者
cmake .
make VERBOSE=1

您会看到编译和链接阶段的详细输出。
或者,如果您输入 CMakeLists.txt,您应该可以达到相同的效果。归档以下行:
set( CMAKE_VERBOSE_MAKEFILE on )

您在其中一种情况下看不到输出的事实可能是由于先前缓存的配置。
我建议您尽可能进行源外构建,这样在这种情况下,您只需删除构建目录即可摆脱每个 CMake 生成的文件和目录。
然后,您可以重新创建新配置,而不会受到先前生成的配置和构建文件的干扰。
当然,我可能是错的,你遇到了一个错误,但这似乎不太可能。

编辑 :那是因为在配置阶段你没有编译,即你没有使用 Makefile,这是命令行选项设置的。这不是 cmake 的详细选项。命令本身在项目构建的任何阶段(配置、编译、安装)。执行 cmake . 时不会显示额外的配置信息但是当你运行 make 时它应该会显示额外的信息。 .
所以 CMAKE_VERBOSE_MAKEFILE如果您想从 CMake 本身获取详细输出,则设置错误选项。

关于cmake - 为什么 `cmake --verbose=1` 给出详细的 cmake 输出而 `cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON` 没有?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41644373/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com