CMake快速入门

目录

前言、CMake是什么?

一、CMake的安装

二、使用步骤

三、CMake常用语法

3.1创建项目

 3.2创建静/动态库

3.3工程链接库

总结:


前言、CMake是什么?

        cmake的定义是什么 ?-----高级编译配置工具

当多个人用不同的语言或者编译器开发一个项目,最终要输出一个可执行文件或者共享库(dll,so等等)这时候神器就出现了-----CMake!

所有操作都是通过编译CMakeLists.txt来完成的—简单

cmake官 方网站,可以通过访问官方网站获得更多关于 cmake 的信息

一、CMake的安装

        可以通过http://www.cmake.org/HTML/Download.html下载安装

二、使用步骤

1.创建CMakeLists.txt

2.在上述文件中编写构建规则

3.执行构建

Linux下执行命令:cmake .    --->   生成makefile文件  -->  make .

windows下在CMakeLists.txt目录路径下打开终端:

                                新建一个目录:例如build    -->

                                进入到新建的build目录下       -->

                                cmake -G "MinGW Makefiles" ..   -->

                                cmake --build .

三、CMake常用语法

3.1创建项目

设置项目所需的最低cmake版本
cmake_minimum_required(VERSION <min>[...<policy_max>] [FATAL_ERROR])

设置项目名 (可选支持语言)
project(<PROJECT-NAME> [<language-name>...])

添加可执行文件

add_executable(<name> [WIN32] [MACOSX_BUNDLE]
               [EXCLUDE_FROM_ALL]
               [source1] [source2 ...]) 

 将普通、缓存或环境变量设置为给定值。

set(<variable> <value>... [PARENT_SCOPE])

#复制请将注释全部删除

#指定最小cmake版本
cmake_minimum_required(VERSION 3.10)

#指定工程名字 并支持语言c与c++
project(abcd C CXX) 

#设置变量  将cpp源文件用变量SRC_LIST表示
set(SRC_LIST main.cpp a.cpp b.cpp c.cpp d.cpp)

#生成可执行文件 testprogram
add_executable(testprogram ${SRC_LIST})

 3.2创建静/动态库

添加库

add_library(<name> [STATIC | SHARED | MODULE]
            [EXCLUDE_FROM_ALL]
            [<source>...])

#工程名为HELLO
PROJECT(HELLO)

#将要生成库的源文件设置为变量LIBHELLO_SRC 
SET(LIBHELLO_SRC hello.cpp)

#生成静态库
ADD_LIBRARY(hello_static STATIC ${LIBHELLO_SRC})
#同时生成同名动静态库时需要添加,以防止命名冲突
SET_TARGET_PROPERTIES(hello_static PROPERTIES  OUTPUT_NAME "hello")

#生成动态库
ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC})
SET_TARGET_PROPERTIES(hello PROPERTIES  OUTPUT_NAME "hello")

3.3工程链接库

#指定链接给定目标和/或其依赖项时要使用的库或标志

target_link_libraries(<target> ... <item>... ...)

#指定库的头文件位置(解决make报找不到头文件的error)

target_include_directories(Tutorial PUBLIC
                          "${PROJECT_BINARY_DIR}"
                          "${PROJECT_SOURCE_DIR}/MathFunctions"
                          ) 

#cmake内置变量

#项目 源目录的绝对路径

 PROJECT_SOURCE_DIR,    <PROJECT-NAME>_SOURCE_DIR   

#项目 二进制目录的绝对路径

PROJECT_BINARY_DIR,        <PROJECT-NAME>_BINARY_DIR

#例如有个外部的库头文件在/usr/local/include/Hello/ 下
INCLUDE_DIRECTORIES(/usr/include/hello)

#指定链接库的路径
LINK_DIRECTORIES(库的路径)

#为名为main的工程添加静态库hello
TARGET_LINK_LIBRARIES(main libhello.a)

总结:

        以上便是cmake常用的语法,更多用法详情参照

        [Cmake官方文档](https://cmake.org/cmake/help/latest/guide/tutorial/)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值