cmake安装使用(详解 )

CMake安装

ubuntu上直接执行 sudo apt install cmake 安装完成,可以通过cmake -version查看其版本

CMake常用命令

#正常命令是下面这样的 一共由6部分组成

#g++ -o 可执行文件/静态库/动态库 编译参数 源文件 头文件 库文件 链接的库

#cmake 其实就是解决这6的部分

(1)生成可执行文件

add_executable(源文件名字 源文件路径/源文件的变量)

(2)编译参数

set(CMAKE_<LANG>_FLAGS ${CMAKE_<LANG>_FLAGS} -g -O2)

在默认配置上加 -g -O2编译参数

(3)源文件添加

第一种方法:set(SRC_LISTS 源文件名字/源文件路径)

第二种方法: aux_source_directory(路径 SRC_LISTS)

将源文件加载到变量里面

(4)配置头文件的搜索路径

include_directories(路径);

(5)配置库文件路径

link_directories(路径)

(6)链接库文件

target_link_directories(程序名 链接的库名字)

(7)加载子目录

add_subdirectory(src)

主要用于大项目构建的时候,有多个CMakeKists

(8)上面的完整代码

#正常命令是下面这样的 一共由6部分组成
#g++ -o 可执行文件/静态库/动态库 编译参数 源文件 头文件 库文件 链接的库
#cmake 其实就是解决这6的部分
##(1)生成可执行文件
add_executable(源文件名字 源文件路径/源文件的变量)

##(2)编译参数
set(CMAKE_<LANG>_FLAGS ${CMAKE_<LANG>_FLAGS} -g -O2)
##在默认配置上加 -g -O2编译参数

##(3)源文件添加
第一种方法:set(SRC_LISTS 源文件名字/源文件路径)
第二种方法: aux_source_directory(路径 SRC_LISTS)
##将源文件加载到变量里面

##(4)配置头文件的搜索路径
include_directories(路径);

##(5)配置库文件路径
link_directories(路径)

##(6)链接库文件
target_link_directories(程序名 链接的库名字)

(9)其他参考

这个博主cmake命令写得挺好的,可以看看

CMake常用命令 - 嗜血苍狼 - 博客园

标准开发项目文件

bin:存放二进制文件

build:存放cmake的中间文件

src:存放源文件

include:存放头文件

lib:存放库文件

thirdlib:第三方库文件

CMakeLists:cmake文件

autosh.sh:一键编译脚本

READMAD:类似说明文档

CMake模板

这里提供一个模板,可以完成标准的工程开发,在不同工程里面只需要改一些变量名字即可,简单易便。

 父文件的

#版本号
cmake_minimum_required(VERSION 3.0)
#项目文件名
project(chat)

# 配置编译选项
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -g)

# 配置最终的可执行文件输出的路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

# 配置头文件的搜索路径 ${PROJECT_SOURCE_DIR} 工程文件路径
include_directories(${PROJECT_SOURCE_DIR}/include)
include_directories(${PROJECT_SOURCE_DIR}/include/server)
include_directories(${PROJECT_SOURCE_DIR}/include/server/db)
include_directories(${PROJECT_SOURCE_DIR}/include/server/model)
include_directories(${PROJECT_SOURCE_DIR}/include/server/redis)
include_directories(${PROJECT_SOURCE_DIR}/thirdparty)
link_directories(/usr/lib64/mysql)


# 加载子目录
add_subdirectory(src)

 src文件下有server和client文件

add_subdirectory(server)
add_subdirectory(client)

 server文件下的CMakeLists

aux_source_directory(. SRC_LIST)
aux_source_directory(./db DB_LIST)
aux_source_directory(./model MODEL_LIST)
aux_source_directory(./redis REDIS_LIST)

# 指定生成可执行文件
add_executable(ChatServer ${SRC_LIST} ${DB_LIST} ${MODEL_LIST} ${REDIS_LIST})
# 指定可执行文件链接时需要依赖的库文件
target_link_libraries(ChatServer muduo_net muduo_base mysqlclient hiredis pthread)

client下可执行文件

# 定义了一个SRC_LIST变量,包含了该目录下所有的源文件
aux_source_directory(. SRC_LIST)

# 指定生成可执行文件
add_executable(ChatClient ${SRC_LIST})
# 指定可执行文件链接时需要依赖的库文件
target_link_libraries(ChatClient pthread)

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值