【发布时间】:2020-07-16 02:14:32
【问题描述】:
我正在使用具有以下内容的 cmake 工具链文件:
set(CMAKE_SYSROOT /path/to/toolchain/system/libraries)
# These are to make cmake use the toolchain and not accidentally use my system's includes/libraries
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
我想在 CMAKE_SYSROOT 之外添加一个单独的包含路径:
list(APPEND CMAKE_SYSTEM_INCLUDE_PATH /absolute/path/to/include)
但是find_path 根本不起作用。谢天谢地,我可以通过将-DCMAKE_FIND_DEBUG_MODE=ON 传递给 cmake 来调试它:
find_path considered the following locations:
/path/to/toolchain/system/libraries/absolute/path/to/include
The item was not found.
那么问题是 CMAKE_SYSTEM_INCLUDE_PATH 与 CMAKE_SYSROOT 相关(docs 中没有说明)。我有哪些选择?是否可以设置另一个变量来将绝对搜索路径添加到find_path?
CMAKE_FIND_ROOT_PATH 可以提供绝对路径,但 cmake 会为其附加我不想要的额外路径,例如 usr/bin/include 而不仅仅是直线路径。 ../ 的相对路径似乎也被过滤掉了。
【问题讨论】:
标签: cmake