我正在Windows 上编译libdwarf。在其根目录中CMakeLists.txt,它尝试通过以下方式找到LibElf:
find_package(LibElf REQUIRED)
Run Code Online (Sandbox Code Playgroud)
LibElf 不使用 CMAKE,我还没有配置它以任何方式注册自己,所以当然find_package失败了。我希望 CMake 打印出它在运行时搜索 LibElf 的所有路径。我如何告诉 CMake 输出这个?我已经尝试过,--trace但这只是向我展示了通过我的CMakeLists.txt文件的执行流程——而不是 CMake 本身目前正在寻找包的位置。
我知道find_package的文档描述了 CMake 搜索的位置,但我可以使用各种变量、环境变量和注册表设置修改该行为。鉴于我对刚才提到的那些项目所做的所有修改,我想看看 CMake 的确切位置。
我应该注意到它libdwarf包含一个cmake/FindLibElf.cmake模块。如果FindLibElf.cmake可以自由地做任何想做的事,也许我要求的东西是不可能的?
Tsy*_*rev 11
由于版本 3.17 CMake 提供了选项--debug-find,这会导致输出大量有关搜索过程和其他命令的调试信息:find_packagefind_*
cmake --debug-find <...>
Run Code Online (Sandbox Code Playgroud)
通过设置变量CMAKE_FIND_DEBUG_MODE可以实现类似的效果。
可以在命令行中设置变量:
cmake -DCMAKE_FIND_DEBUG_MODE=1 <...>
Run Code Online (Sandbox Code Playgroud)
或在CMakeLists.txt:
set(CMAKE_FIND_DEBUG_MODE 1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2636 次 |
| 最近记录: |