为find_package指定搜索路径,可以使用PATHS、HINTS、CMAKE_FIND_ROOT_PATH等选项。以下是一些常用方法: PATHS:直接指定一个或多个路径,CMake将在这些路径中查找包。 HINTS:提供查找包的提示路径,CMake会在这些路径及其子目录中查找。 CMAKE_FIND_ROOT_PATH:设置一个或多个根路径,CMake会在这些根路径及其子目录中...
add_executable(my_bin src/my_bin.cpp)find_package(OpenCV REQUIRED)include_directories(${OpenCV_INCLUDE_DIRS})target_link_libraries(my_bin, ${OpenCV_LIBS}) 工作流程如下: find_package在一些目录中查找OpenCV的配置文件。 找到后,find_package会将头文件目录设置到${OpenCV_INCLUDE_DIRS}中,将链接库设置...
让find_package在指定路径找依赖包,有三种方式 # 1. 设置DIRset(Torch_DIR /home/libtorch) find_package(Torch REQUIRED)# 2. 设置PATHSfind_package(Protobuf REQUIRED PATHS /home/libtorch NO_DEFAULT_PATH)# 3. 指定set(CMAKE_PREFIX_PATH /home/libtorch) 【参考文章】...
NO_DEFAULT_PATH:可选参数,用于禁用find_package命令的默认路径搜索。默认情况下,find_package命令会在一些预定义的路径中搜索库或框架。如果指定了该参数,find_package命令将只使用CMAKE_PREFIX_PATH和CMAKE_FRAMEWORK_PATH中指定的路径进行搜索。 find_package(MyLib NO_DEFAULT_PATH) 上述代码表示禁用find_package命...
通常我们会使用find_package去找某个依赖的第三方库,比如如果存在多个版本的gflags,这样容易找错,引起编译问题。比如gflags是不同gcc版本编译的。 a. 通过默认的FindPackage find_package(GFlags REQUIRED) 这个时候可以通过PATHS指定某个目录去寻找,避免多个版本链接出错。
在CMake 中设置find_package的路径有两种常见方法: 使用CMake 自带的CMAKE_PREFIX_PATH变量,该变量用于指定查找包的路径。你可以在项目的 CMakeLists.txt 文件中添加如下代码来设置路径: set(CMAKE_PREFIX_PATH"/path/to/package") 这里的 “/path/to/package” 是你想要查找包的路径。
cmake找到这些目录后,会开始依次找<package>Config.cmake或Find<package>.cmake文件。找到后即可执行该文件并生成相关链接信息。 现在回过头来看查找路径的根目录。我认为最重要的一个是PATH。由于/usr/bin/在PATH中,cmake会自动去/usr/(lib/<arch>|lib|share)/cmake/<name>*/寻找模块,这使得绝大部分我们直接...
1、指定 package 搜索辅助文件路径 list(APPEND CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_CURRENT_LIST_DIR}/cmake") 1. 或 set(Caffe_DIR /home/hzh/projects/Caffe/build) #添加CaffeConfig.cmake的搜索路径 1. 2、使用 find_package ...
CMAKE_MODULE_PATH是一个逗号分割的列表,用来指定CMake 模块搜索路径,有两个命令可能会使用到它,分别是include()和find_package。默认情况,这个列表为空,通常是在项目中设置的。 1.2 配置模式(Config mode) 在这个模式下,CMake尝试寻找名为带有config的后缀为cmake文件(<lowercasePackageName>-config.cmake<Package...