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的两种搜索模式都会按照一定规则从路径下搜索.cmake后缀的文件,两种模式下的.cmake文件作用都是为了给find_package命令的调用方返回有关包的信息(头文件路径、库文件路径、编译连接选项、版本信息等等),对于两种模式的进一步说明可以参看Cmake中find_package命令的搜索模式之模块模式(Module mode)和Cmake中fi...
让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) 改变 find_package(YourPackageName NO_DEFAULT_PAT...
find_package的两种搜索模式都会按照一定规则从路径下搜索.cmake后缀的文件,两种模式下的.cmake文件作用都是为了给find_package命令的调用方返回有关包的信息(头文件路径、库文件路径、编译连接选项、版本信息等等),对于两种模式的进一步说明可以参看Cmake中find_package命令的搜索模式之模块模式(Module mode)和C...
find_package()函数将从CMAKE_MODULE_PATH中的文件夹列表中搜索格式为FindXXX.cmake的CMake模块。find_package的参数的确切格式将取决于你要查找的模块。这通常记录在文件FindXXX.cmake的顶部 下面是查找Boost的基本示例: find_package(Boost 1.46.1 REQUIRED COMPONENTS filesystem system) ...
1. find_package在MODULE模式下找到Protobuf find_package(Protobuf REQUIRED) # 能找到 find_package(Protobuf REQUIRED CONFIG) # 找不到 也即是:MODULE模式下找到了protobuf。而MODULE模式下无非是先后从CMAKE_MODULE_PATH所指示的路径、cmake安装的Modules目录(如~/soft/cmake/share/cmake-3.17/Modules),根据...
find_package(GFlags PATHS /workspace/xxx/gflags-2.2.2/out/lib/cmake/gflags REQUIRED NO_DEFAULT_PATH) 如果安装的第三方库使用源码编译安装,并且作者没有编写.cmake文件供find_package使用。这时可以使用file GLOB去寻找指定目录下的so或者.a文件。
1.1.2 find_library的常用参数 (1.1.2 Common Parameters of find_library) 除了基本的名称和路径参数外,find_library 还有一些重要的选项,比如: NO_DEFAULT_PATH:告诉 CMake 不要在默认路径中查找库文件。 NO_CMAKE_ENVIRONMENT_PATH:不使用环境变量中的路径。 NO_CMAKE_PATH:不使用由 cmake 指定的路径。 NO...
NO_POLICY_SCOPE:cmake policy,参见:cmake_policy 注:上述参数中,除了PackageName必需,其他都是可选参数。 MODULE模式的查找路径 在MODULE模式下,cmake通过查找名为Find<PackageName>.cmake的文件来查找包。 首先在变量CMAKE_MODULE_PATH对应的路径中去查找 ...
为了确保 CMake 使用指定路径中的库文件,可以在find_library中加入NO_DEFAULT_PATH选项。这样做可以让 CMake 忽略默认的 系统路径,只在指定的路径中查找库文件。 1.3.2 清除CMake缓存 (1.3.2 Clearing CMake Cache) 如果怀疑是缓存问题,可以尝试清除 CMake 缓存或者在一个新的构建目录中重新运行 CMake。这可以...