cmake 使用方法

一、安装cmake

二、cmake的编译执行过程

//一、在cpp文件所在的路径下创建CMakeLists.txt
vim CMakeLists.txt

//二、 在CMakeLists.txt文件里写入代码

//三、生成Makefile文件。 点表示当前目录,在当前目录生成Makefile文件
cmake .              

//四、编译
make

//五、运行可执行文件
./可执行文件

三、CMake一个HelloWord的语法介绍

PROJECT(HELLO)
SET(SRC_LIST main.cpp)
MESSAGE(STATUS "This is BINARY dir" ${PROJECT_BINARY_DIR})
MESSAGE(STATUS "This is SOURCE dir" ${PROJECT_SOURCE_DIR})
ADD_EXECUTABLE(hello ${SRC_LIST})

cmake_minimum_required    指定CMake的最小版本要求

cmake_minimum_required(VERSION 2.8.3)

PROJECT关键字

可以用来指定工程的名字和支持的语言,默认支持所有语言

PROJECT(HELLO)制定了工程的名字,并且支持所有语言(建议使用)

PROJECT(HELLO CXX)制定了工程的名字,并且支持所有语言是C++

PROJECT(HELLO C CXX)制定了工程的名字,并且支持所有语言是C和C++

该指定隐式定义了两个CMAKE的变量

<projectname>_BINARY_DIR,本PROJECT_BINARY_DIR

<projectname>_SOURCE_DIR,本例中是PROJECT_SOURCE_DIR

SET关键字

用来显示的指定变量的

SET(SRC_LIST main.cpp)  SRC_LIST变量就包含了main.cpp

也可以SET(SRC_LIST main.cpp t1.cpp t2.cpp)

include_directories  向工程添加多个特定的头文件搜索路径   相当于指定g++编译器的-l参数

#将/usr/lib/myincludefolder 和 ./include添加到头文件搜索路径

include_directories(/usr/include/myincludefolder ./include)

link_directories  向工程添加多个特定的库文件搜索路径     相当于指定g++编译器的-L参数

#将/usr/lib/mylibfolder 和./lib 添加到库文件搜索路径

link_directories(/usr/lib/mylibfolder ./lib)

add_library  生成库文件

#通过变量SRC生成libhello.so 共享库

add_library(hello SHARED ${SRC})

MESSAGE关键字

向终端输出用户自定义的信息

主要包含三种信息:

SEND_ERROR,产生错误,生成过程被跳过。

SATUS,输出前缀为-的信息。

FATAL_ERROR,立即终止所有cmake过程。

ADD_EXECUTABLE关键字

生成可执行文件

ADD_EXECUTABLE(hello ${SRC_LIST})  生成的可执行文件名是hello,源文件读取变量SRC_LIST中的内容也可以直接写ADD_EXECUTABLE(hello main.cpp)

可以不写SET和MESSAGE

简写(工程名和生成的可执行文件hello是没有任何关系的)

PROJECT(HELLO)

ADD_EXECUTABLE(hello main.cpp)

四、外部构建

上面的方法就属于内部构建,会产生很多临时文件,不方便清理

可以使用外部构建的方法,会把生成的临时文件放在build目录下,不会对源文件产生什么影响

//创建build文件夹
mkdir build/ 

//进入文件夹
cd build

//在build文件夹中生成Makefile
CMake ..

//生成可执行文件
make

当多文件时候这么编译

cmake_minimum_required(VERSION 3.0)

project(SWAP)

include_directories(include)

add_executable(main_cmake main.cpp src/swap.cpp)

五、使用VSCode进行完整项目开发

1、合理设置项目目录

2、编写项目源文件

3、编写CMakeLists.txt构建项目编译规则

4、使用外部构建,手动编译CMake项目

5、配置VSCode的json文件调试项目

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CMake是一个跨平台的自动化构建工具,可以用于生成各种不同类型的构建文件,包括Makefile、Visual Studio解决方案、Xcode项目等。下面是CMake使用方法详解: 1. 安装CMake 首先需要在官网上下载并安装CMake软件。安装完成后,可以在命令行中输入cmake --version来确认是否安装成功。 2. 创建一个CMakeLists.txt文件 在项目根目录下创建一个名为CMakeLists.txt的文件,该文件是CMake的核心配置文件,定义了项目的构建规则。可以使用文本编辑器或者IDE来创建这个文件。 3. 设置项目信息 在CMakeLists.txt文件中,需要设置项目的基本信息,包括项目名称、版本号、语言等。这可以通过使用project命令来实现。例如: ``` project(MyProject VERSION 1.0 LANGUAGES CXX) ``` 这里设置了项目名称为MyProject,版本号为1.0,使用C++作为编程语言。 4. 定义源文件 在CMakeLists.txt文件中,需要定义项目的源文件。可以使用add_executable或add_library命令来添加源文件。例如: ``` add_executable(myapp main.cpp) ``` 这里添加了一个名为myapp的可执行文件,它的源文件是main.cpp。 5. 添加依赖库 如果项目依赖于其他库,需要使用find_package或者add_subdirectory命令来添加依赖库。例如: ``` find_package(Boost REQUIRED COMPONENTS filesystem system) include_directories(${Boost_INCLUDE_DIRS}) target_link_libraries(myapp ${Boost_LIBRARIES}) ``` 这里添加了一个名为Boost的库,它的组件是filesystem和system。 6. 设置编译选项 在CMakeLists.txt文件中还可以设置编译选项,例如编译标志、链接标志等。可以使用target_compile_options和target_link_libraries命令来设置编译选项。例如: ``` target_compile_options(myapp PRIVATE -Wall -Wextra) target_link_libraries(myapp pthread) ``` 这里设置了编译标记为-Wall和-Wextra,链接标记为pthread。 7. 构建项目 完成以上步骤后,就可以使用cmake命令来生成构建文件,例如: ``` mkdir build cd build cmake .. ``` 这里在项目根目录下创建了一个build目录,并在其中使用cmake命令生成Makefile文件。 最后,使用make命令来编译和构建项目。例如: ``` make ``` 这里编译和构建了项目,并生成myapp可执行文件。 以上就是CMake使用方法详解。通过CMake,可以方便地管理项目的构建过程,实现跨平台的构建。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值