在 CMake 中,CMAKE_PREFIX_PATH、CMAKE_MODULE_PATH、CMAKE_FIND_ROOT_PATH、find_package 的 PATHS 和 HINTS 选项都是用于指定查找库和包的路径,但它们的用途和优先级有所不同。下面是它们之间的区别和推荐使用的场景:
-
CMAKE_PREFIX_PATH用途:用于指定查找包时的前缀路径。CMake 会在这些路径下查找包的配置文件(例如
Find<Package>.cmake或<Package>Config.cmake)。
优先级:在查找时,CMAKE_PREFIX_PATH中的路径会被优先考虑。
推荐使用场景:当你有多个安装位置或需要指定特定的库路径时,可以使用这个变量。 -
CMAKE_MODULE_PATH用途:用于指定 CMake 模块的查找路径,主要是用于查找
Find<Package>.cmake文件。
优先级:在查找时,CMAKE_MODULE_PATH中的路径会被优先考虑,但通常优先级低于CMAKE_PREFIX_PATH。
推荐使用场景:当你有自定义的查找模块或需要使用特定的 Find 模块时,可以使用这个变量。 -
CMAKE_FIND_ROOT_PATH用途:用于指定交叉编译时的查找根路径。CMake 会在这些路径下查找库和头文件。
优先级:在交叉编译时使用,通常与CMAKE_FIND_ROOT_PATH_MODE_PACKAGE和CMAKE_FIND_ROOT_PATH_MODE_LIBRARY

最低0.47元/天 解锁文章
1346

被折叠的 条评论
为什么被折叠?



