NO_DEFAULT_PATH选项是find_package命令的一个参数,用于指示CMake在查找包时仅考虑用户明确指定的路径,而忽略所有默认的搜索路径。这通常用于避免在标准或全局路径中意外地找到错误的包版本,或者当你知道包的确切位置并希望直接指定时。 3. 提供如何在find_package中使用no_default_path的示例 ...
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在指定路径找依赖包,有三种方式 # 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(<PackageName>[version][EXACT][QUIET][REQUIRED][[COMPONENTS][components...]][CONFIG|NO_MODULE][NO_POLICY_SCOPE][NAMESname1[name2...]][CONFIGSconfig1[config2...]][HINTSpath1[path2...]][PATHSpath1[path2...]][PATH_SUFFIXESsuffix1[suffix2...]][NO_DEFAULT_PATH][NO_PACKAG...
例如,NO_DEFAULT_PATH选项可以禁止在默认路径中搜索包;PATHS选项可以指定其他路径进行搜索;CONFIG选项表示要以配置文件的方式查找包;QUIET选项可以使CMake在找不到包时不显示错误消息。 find_package命令有两种工作模式,一种是查找配置文件,另一种是查找模块。配置文件是一个包含了有关库的信息的脚本,这些信息包括库的...
find_package(YourPackageName NO_DEFAULT_PATH) ## 不要在默认的路径中查找find_package(YourPackageName NO_CMAKE_PATH) ## 不要在CMAKE_PREFIX_PATH变量中指定的路径中查找 C++ 语法 重载operator是C++的一个关键字,它和运算符(如=)一起使用,表示一个运算符重载函数 ...
CMAKE_FRAMEWORK_PATH、 CMAKE_APPBUNDLE_PATH三个变量; 例如 cmake -DCMAKE_PREFIX_PATH=/usr/local/lib;/lib。可以通过NO_CMAKE_PATH选项或将CMAKE_FIND_USE_CMAKE_PATH设置为FALSE来跳过 (3). 搜索特定于cmake的环境变量中指定的路径。如果传递了NO_CMAKE_ENVIRONMENT_PATH,或者将CMAKE_FIND_USE_CMAKE...
默认搜索顺序被设计为最特定于最不特定于常见用例。项目可以通过多次调用该命令并使用NO_*选项来覆盖该命令: find_package (<PackageName> PATHS paths... NO_DEFAULT_PATH) find_package (<PackageName>) 1. 2. 一旦其中一个调用成功,结果变量将被设置并存储在缓存中,以便不再进行调用搜索。
find_path()的作用,是根据提供的一个文件(可以带有前缀子目录),查找到包含该文件的目录。在前面FindProtobuf.cmake中看到,提供google/protobuf/service.h文件,找到了包含它的目录是/usr/include,作为find_path()的输出变量的Protobuf_INCLUDE_DIR,被设定为/usr/include。
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文件。