通过执行该配置文件,从而定义了一系列的变量,通过这些变量就可以准确定位到库的头文件和库文件,完成编译CMake提供了find_package()命令用来查找CMake本身不提供任何搜索库的便捷方法,所有搜索库并给变量复制的操作必须由CMake代码完成, 也就是目录下的<PackageName>Config.cmake或Find<PackageName>.cmake的配置文件。
例程中${CMAKE_INSTALL_FULL_LIBDIR}/cmake/testHello可以改为${CMAKE_INSTALL_FULL_LIBDIR}/testHello,但是不能写成${CMAKE_INSTALL_FULL_LIBDIR}/Cmake/testHello。 五. 编译、安装例程 执行如下指令: $mkdirbuild$cmake-DCMAKE_INSTALL_PREFIX=/usr/local .. ...$make...$makeinstall[100%]Built t...
find_package(GFlags REQUIRED) 这个时候可以通过PATHS指定某个目录去寻找,避免多个版本链接出错。 find_package(GFlags PATHS /workspace/xxx/gflags-2.2.2/out/lib/cmake/gflags REQUIRED NO_DEFAULT_PATH) 如果安装的第三方库使用源码编译安装,并且作者没有编写.cmake文件供find_package使用。这时可以使用file GLOB去...
# 将项目目录下的cmake文件夹加入到CMAKE_MODULE_PATH中,让find_pakcage能够找到我们自定义的函数库set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake;${CMAKE_MODULE_PATH}")add_executable(addtest addtest.cc)find_package(ADD)if(ADD_FOUND)target_include_directories(addtest PRIVATE ${ADD_INCLUDE_D...
cmake 生成供find_package使用的自定义模块; Creating Packages¶; How to use CMake to find and link to a library using install-export and find_package?; 二、我生成的项目 项目地址:BluffeyTest/Ransac; 文件结构如下: . ├── bin │ ├── testRansac ...
#include<test_install.h>voidPrint::PrintHelloWorld(){std::cout<<"hello world "<<std::endl;} 在cmake_modules中复制几个文件进去,他们都已经在github里,这几个文件分别叫做FindPackage.cmake, cmake_uninstall.cmake.in, install_package.cmake, PackageConfig.cmake.in, PackageConfigVersion.cmake.in,...
find_package(CURLREQUIRED)include_directories(${CURL_INCLUDE_DIR})target_link_libraries(curltest ${CURL_LIBRARY}) 那么cmake是如何查找的呢? find_package()命令首先会在模块路径中寻找Find.cmake,这是查找库的一个典型方式。具体查找路径依次为CMake:变量${CMAKE_MODULE_PATH}中的所有目录。如果没有,然后...
一、find_package 命令基本介绍 在实际开发工程中,经常不可避免会使用到第三方开源库,这些开源库可能是通过apt-get install 命令自动安装到系统目录中的;也有可能是由我们自己下载库的源码,然后通过编译安装到指令目录下。 不管哪种方式安装的库文件,如果我们需要在项目中使用这些库,首先面临的第一个问题,就是怎么找...
首先,find_package 有两种模式,一是Module模式,一是Config模式。 cmake本身不提供任何搜索库的便捷方法,所有搜索库并给变量赋值的操作必须由cmake代码(自己写的)完成,比如下面将要提到的FindXXX.cmake和XXXConfig.cmake。只不过,库的作者通常会提供这两个文件,以方便使用者调用。
CMake支持find_package(),相信大家在Linux上面用OpenCV,很多都是直接用这条命令。 当我们用find_package(my_library ...)这条命令时,它去${CMAKE_INSTALL_PREFIX}/lib目录下一个名为my_library*的文件夹中自动去寻找一个类似my_library-config.cmake的文件,而我们的安装命名就是符合这个规则的,lib/my_library...