CMake--模块的使用和自定义模块

 

转载:https://www.cnblogs.com/narjaja/p/9533199.html

 

1.链接外部库

如果程序中使用了外部库,事先并不知道它的头文件和链接库的位置,就要给出头文件和链接库的查找方法,并将他们链接到程序中。

FIND_PACKAGE(<name> [major.minor] [QUIET] [NO_MODULE] 
[[REQUIRED|COMPONENTS] [componets...]])

1) find_package(

find_package(

模块模式

  • ${CMAKE_MODULE_PATH}中的所有目录。
  • 模块目录 /share/cmake-x.y/Modules/ 这称为。

配置模式

  • ~/.cmake/packages/或/usr/local/share/中的各个包目录中查找,寻找<库名字的大写>Config.cmake 或者 <库名字的小写>-config.cmake (比如库Opencv,它会查找/usr/local/share/OpenCV中的OpenCVConfig.cmake或opencv-config.cmake)。

2) .cmake文件定义变量
不管使用哪一种模式,只要找到
.cmake,*.cmake里面都会定义下面这些变量:

<NAME>_FOUND
<NAME>_INCLUDE_DIRS or <NAME>_INCLUDES
<NAME>_LIBRARIES or <NAME>_LIBRARIES or <NAME>_LIBS
<NAME>_DEFINITIONS

注意大部分包的这些变量中的包名是全大写的,如 LIBFOO_FOUND ,有些包则使用包的实际大小写,如 LibFoo_FOUND

3)添加头文件与链接库文件

如果找到这个包,则可以通过在工程的顶层目录中的CMakeLists.txt 文件添加 include_directories(

4) 链接OpenCV的例子

创建t4目录添加cmake目录与main.cpp与CMakeList.txt文件

创建cmake目录添加FindOpenCV.cmake文件。

CMakeList.txt

cmake_minimum_required(VERSION 2.8)
PROJECT (HELLO)
SET(SRC_LIST main.cpp)

INCLUDE_DIRECTORIES(cmake)

SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
#在${CMAKE_MODULE_PATH}中添加包含FindOpenCV.cmake目录

FIND_PACKAGE(OpenCV)
#获取OPENCV_FOUND OPENCV_INCLUDE_DIR OPENCV_LIBRARIES

INCLUDE_DIRECTORIES(${OPENCV_INCLUDE_DIR})

ADD_EXECUTABLE(hello ${SRC_LIST})
TARGET_LINK_LIBRARIES(hello ${OPENCV_LIBRARIES})

main.cpp

#include <iostream>
#include <opencv2/opencv.hpp>
int main()
{
    cv::Mat image = cv::imread("../timg.jpeg");
    if (!image.empty()) {
        cv::imshow("image", image);
        cv::waitKey(-1);
    } else {
        std::cout << "Can not get image." << std::endl;
    }

    return 0;
}

2.自定义模块(作业)

编写FindHello.cmake与CMakeList.txt文件,将CMAKE工程小结所安装的hello链接至主函数,调用HelloFunc()函数输出相应内容:

给出main.c 文件:

#include <hello/hello.h>
int main()
{
    HelloFunc();
    return 0;
}

分类: CMAKE

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: cmake-3.21.0-windows-x86_64.msi是一个用于Windows系统的CMake安装程序文件。CMake一个开源的跨平台构建工具,可以自动生成适用于多种系统和编译器的构建脚本。 安装CMake可以简化项目的构建过程,减少手动配置和管理的工作量。通过CMake,开发者可以方便地指定项目结构、编译器选项、依赖项、构建目标等信息,从而生成可执行文件、库和各种构建产物。 CMake的另一个优势是其强大的扩展性,可以轻松地编写自定义模块和插件来满足特定的构建需求。 对于Windows平台的开发者,CMake-3.21.0-windows-x86_64.msi是一个极为方便的安装程序,可以快速的安装并配置好CMake,并且它支持64位Windows系统,可以更好地应对现代硬件的需求。开发者可以从官方网站下载该文件,并按照安装向导完成安装即可。 ### 回答2: cmake-3.21.0-windows-x86_64.msi是一个用于安装CMake软件的安装包,适用于Windows 64位操作系统。CMake一个跨平台的自动化构建工具,它可以通过简单的配置文件生成不同平台下的makefile或者项目文件,从而实现项目的构建。CMake支持多种编译器、多种操作系统和各种开发工具链,使得跨平台开发更加方便。 通过下载cmake-3.21.0-windows-x86_64.msi并安装,用户可以轻松地使用CMake进行项目构建。安装完成后,用户可以通过命令行或者GUI界面进行项目的配置和生成。CMake支持多种编程语言,包括C、C++、Python等,可以生成静态库、动态库、可执行文件等多种形式的输出文件。 总之,cmake-3.21.0-windows-x86_64.msi是一个非常实用的工具包,它可以帮助开发者实现跨平台开发,快速构建项目,提高开发效率。如果你是一名开发人员,那么不妨尝试一下CMake,它一定会让你的工作更加轻松。 ### 回答3: CMake一个跨平台的自动化构建工具,用于管理C++项目的编译过程。最新版本为CMake 3.21.0,在Windows平台上提供了一个x86_64的安装包cmake-3.21.0-windows-x86_64.msi。这个安装包可以在64位Windows系统上安装CMake并提供与构建工具集成的实用工具。CMake使用可以大大简化C++项目的编译,特别是对于跨平台项目而言。此外,CMake易于配置和可扩展,使它变得特别流行。它支持各种编译器和操作系统,可以进行快速和高效的自动化构建和测试,并且已广泛地使用于各种开源和商业项目当。总之,cmake-3.21.0-windows-x86_64.msi是一个非常有用的工具,支持在64位Windows系统上构建C++项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值