find_package 打印查找到的路径
时间: 2024-05-11 16:14:15 浏览: 7
在 CMake 中,使用 find_package 命令可以查找安装在系统中的软件包。如果成功找到该软件包,CMake 会自动设置相关变量,以便在后续的编译过程中使用。可以通过以下方式打印查找到的路径:
```
find_package(PackageName)
if(PackageName_FOUND)
message("PackageName found at ${PackageName_DIR}")
else()
message(FATAL_ERROR "PackageName not found")
endif()
```
其中,PackageName_DIR 是由 find_package 命令自动设置的变量,它指向该软件包的安装路径。在上述代码中,如果找到了 PackageName,就会打印出该软件包的安装路径。如果没有找到,就会打印出错误信息并终止编译过程。
相关问题
使用find_package指定路径
你可以在`find_package`命令中使用`PATHS`选项来指定额外的查找路径。例如:
```cmake
find_package(osg REQUIRED COMPONENTS osgViewer osgGA osgText osgDB osgUtil osgFX PATHS /path/to/my/lib /path/to/other/lib)
```
这样就会在`/path/to/my/lib`和`/path/to/other/lib`这两个路径中查找OpenSceneGraph库和其组件,并且会将找到的库和组件添加到`OSG_LIBS`变量中。如果在这些路径中找不到OpenSceneGraph库或其组件,则会报错。
注意,使用`PATHS`选项指定的路径优先级高于默认查找路径和`CMAKE_PREFIX_PATH`变量指定的路径。如果指定了多个路径,CMake将按照指定的顺序依次查找。
查看find_package的路径
你可以使用`message`命令输出`CMAKE_PREFIX_PATH`和`CMAKE_MODULE_PATH`变量的值,以查看`find_package`命令的默认查找路径。例如:
```cmake
message("CMAKE_PREFIX_PATH = ${CMAKE_PREFIX_PATH}")
message("CMAKE_MODULE_PATH = ${CMAKE_MODULE_PATH}")
```
这将在CMake运行时输出`CMAKE_PREFIX_PATH`和`CMAKE_MODULE_PATH`变量的值,你可以在输出信息中查看默认的查找路径。如果需要自定义查找路径,可以在CMakeLists.txt中添加对应的路径,例如:
```cmake
set(CMAKE_PREFIX_PATH "/path/to/my/lib;/path/to/other/lib")
set(CMAKE_MODULE_PATH "/path/to/my/cmake/modules;/path/to/other/cmake/modules")
```
这样就会在指定的路径中查找库和模块文件。