vsc中使用cmake

7.1前言

1.Cmake是一个跨平台的安装编译工具,可以使用简单的语句来描述所有平台的安装(编译过程)

2.Cmake可以说是已经成为大部分的c++开发项目的标配

3.可以使用几行或者几十行的代码来完成非常冗长的makefile代码

7.2为什么要使用cmake

1.在不使用cmake时,编译工程如下

2.在上面的机制中,工程文件中添加一个bar.cpp

3.使用Cmake来管理工程的状态

4.使用cmake管理工程中添加一个新闻界bar.cpp

7.3语法特定介绍

1.基本语法:指令(参数1 参数2..)

参数使用括号括起来

参数直接使用空格或分号隔开

2.注意:指令是我大小写无关的,但是参数和变量是大小写相关的

set(HELLO hello.cpp) #定义一个变量名叫HELLO 变量的值为hello.cpp

add_executable(hello main.cpp hello.cpp) #通过main.cpp 和hello.cpp编译生成hello可执行程序

ADD_EXECUTABLE(hello main.cpp ${HELLO}) #作用同上

3.变量使用${}进行取值,但是在if控制语句中,是直接使用变量名的

if(HELLO)是正确的

if(${hello})是不正确的

4.语句不以分号结束

7.4重要的指令和cmake常用变量

1.cmake_mininum_required:指定cmake的最小版本支持,一般作为第一条cmake指令

#cmake设置最小支持版本为2.8

cmake_mininum_required(VERSION)

2.project:定义工程的名字,并可以指定工程支持的语言

#指定工程的名称为HELLOWORLD

project(HELLOWORLD CXX) #表示工程名为HELLOWOELD 使用的语音为c++

3.set:显示定义变量

# 定义变量 SRC 其值 sayhello.cpp hello.cpp

set(SRC sayhello.cpp hello.cpp)

4.add_executable:通过依赖生成可执行程序

#编译main.cpp 生成main的可执行程序

add_executable(main main.cpp)r

5.include_directories:向工程添加多个特定的头文件搜索路径,类似于g++编译指令中的-l

3将/user/lib/mylibfolder和 ./include添加到工程路径中

include_directories(/user/lib/mylibfolde ./include)

6.link_directories:向工程中添加多个特殊的库文件搜索路径,类似于g++编译指令的-L选项

3将/user/lib/mylibfolder和 ./lib添加到库文件搜索路径中

link_directories(/user/lib/mylibfolde ./lib)

7.add_library:生成库文件(包括动态库和静态库)

#通过SRC 变量中的文件,生成动态库

abb_library(hello SHARED ${SRC)) #动态库

abb_library(hello STATIC ${SRC))  #静态库

8.add_compile_options:添加编译参数

#添加编译参数 -wall -std=c++

add_compile_options(-wall -std=c++11)

9.target_link_libraries:为target添加需要链接的共享库.类似于g++编译中-l

#将hello动态库链接到可执行程序main中

target_link_libraries(main hello)

7.5Cmake变量

1.CMAKE_C_FLAGS:gcc编译选项的值

2.CMAKE_CXX_FLAGS:g++编译选择的值

#在CMAKE_CXX_FLAGS编译选项后追加-std=c++11

set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS} -std=c++"

3.CMAKE_BUILD_TYPE:编译类型(debug\release)

#设定编译类似为Debug,调试时需要选择该模式

set(CMAKE_BUILD_TYPE Debug)

#设定编译类似为Release,调试时需要选择该模式

set(CMAKE_BUILD_TYPE Release)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值