gpt4 book ai didi

cmake - 如何获得 CMake 的详细输出?

转载 作者:行者123 更新时间:2023-12-03 23:56:22 26 4
gpt4 key购买 nike

我想调查为什么我有这个错误:

$ cmake ..
-- The C compiler identification is unknown
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /cygdrive/c/Users/Ycr/Home/bin/arm-none-eabi-gcc
-- Check for working C compiler: /cygdrive/c/Users/Ycr/Home/bin/arm-none-eabi-gcc -- broken
CMake Error at /usr/share/cmake-3.6.2/Modules/CMakeTestCCompiler.cmake:61 (message):
The C compiler "/cygdrive/c/Users/Ycr/Home/bin/arm-none-eabi-gcc" is not
able to compile a simple test program.

不幸的是在错误之后:
  • 我不知道 CMake 做了什么。我没有它执行的命令的详细日志。
  • CMakeFiles/cmTC_e4aa4.dir 在出错后被清理掉了,所以我没办法自己去探究这个问题。

  • 我应该如何调查这样的错误?

    我尝试使用 --debug-trycompile 选项。这次 CMake 创建了一个 CMakeTmp 文件夹,它完美无误。但是,我仍然有这个 CMakeFiles/cmTC_e4aa4.dir 会产生错误,甚至使用 CMake 选项取消链接文件夹。

    最佳答案

    获取详细日志

    try_compile() 调用 CMake 在开始测试编译器时所做的调用,在控制台上给出详细的错误输出并将其写入

    [your binary output directory]/CMakeFiles/CMakeError.log

    我再次检查了源代码,没有 CMake 选项可以为 CMake 的内部 try_compile() 调用提供更详细的输出。

    您可以通过在 variable_watch() 调用之前向主 CMakeLists.txt 添加一些 project() 调用来强制输出到标准输出,例如:
    variable_watch(__CMAKE_C_COMPILER_OUTPUT)
    variable_watch(__CMAKE_CXX_COMPILER_OUTPUT)

    保留临时文件

    要保留 try_compile 的临时文件,请将 --debug-trycompile 添加到 cmake 命令行。

    但请注意,一开始的多个编译器测试会覆盖以前的工件:

    It may however change the results of the try-compiles as old junk from a previous try-compile may cause a different test to either pass or fail incorrectly. This option is best used for one try-compile at a time, and only when debugging.



    引用
  • How to keep generated temporary files?
  • CMake error at CMakeLists.txt:30 (project): No CMAKE_C_COMPILER could be found
  • 关于cmake - 如何获得 CMake 的详细输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45858730/

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