cmake使用

 简介:

​    CMake 是个一个开源的跨平台自动化建构系统,用来管理软件建置的程序,并不依赖于某特定编译器,并可支持多层目录、多个应用程序与多个函数库。

​    CMake 通过使用简单的配置文件 CMakeLists.txt,自动生成不同平台的构建文件(如 Makefile、Ninja 构建文件、Visual Studio 工程文件等),简化了项目的编译和构建过程。

​    CMake 本身不是构建工具,而是生成构建系统的工具,它生成的构建系统可以使用不同的编译器和工具链。

cmake安装

​    CMake 安装包下载地址:https://cmake.org/download/。

​    qt使用中可以使用qt自带的cmake   一般在..\Qt\Tools\CMake_64\bin下

​    点开后是这样的:

设置源代码目录和构建目录:

​    源代码目录(Source Code Directory):指向包含 CMakeLists.txt 文件的目录。

​    构建目录(Build Directory): 指向用于存放生成的构建文件的目录。建议使用独立的目录以保持源代码的整洁。

配置和生成:

​    点击 "Configure" 按钮,选择编译器和构建选项,CMake 会检查依赖项并生成配置。

​    点击 "Generate" 按钮,CMake 会生成适合当前平台的构建文件。

cmake语法:

​    CMakeLists.txt 是 CMake 的配置文件,用于定义项目的构建规则、依赖关系、编译选项等。

每个 CMake 项目通常都有一个或多个 CMakeLists.txt 文件。

​    CMakeLists.txt 文件使用一系列的 CMake 指令来描述构建过程。常见的指令包括:

1、指定 CMake 的最低版本要求:

​    cmake_minimum_required(VERSION <version>)

​    ps:  cmake_minimum_required(VERSION 3.16) #cmake最低版本要求为3.16

2、定义项目的名称和使用的编程语言:

​    project(<project_name> [<language>...])

​    ps:project(PCB  LANGUAGES CXX) #项目名称PCB  语言c++

3、指定要生成的可执行文件和其源文件:

​    add_executable(<target> <source_files>...)

​    ps:add_executable(PCB ${PROJECT_SOURCES})

4、链接目标文件与其他库:

​    target_link_libraries(<target> <libraries>...)

    ps:target_link_libraries(PCB PRIVATE
    Qt${QT_VERSION_MAJOR}::Widgets
    ${OpenCV_LIBS}
    ncnn

)#链接依赖是私有的(`PRIVATE`) 链接 Qt Widgets ,opencv,ncnn模块

5、添加头文件搜索路径:

​    include_directories(<dirs>...)

​    ps:include_directories(${OpenCV_INCLUDE_DIRS})

6、设置变量的值:

​    set(<variable> <value>...)

7.查找库和包

​    find_package(Boost REQUIRED)

​    ps:find_package(OpenCV REQUIRED PATHS /path/to/opencv)#REQUIRED关键字在找不到包时生成错误

cmakes使用第三方库:

cmake_minimum_required(VERSION 3.10)
project(MyProject CXX)

查找 Boost 库

find_package(Boost REQUIRED)

添加源文件

add_executable(MyExecutable main.cpp)

链接 Boost 库

target_link_libraries(MyExecutable Boost::Boost)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值