1.CMake简介
使用简单方便,可以跨平台,构建项目编译环境,可以通过简单的Cmake生成负责的MakeFile文件。
2.CMake安装
在终端安装CMake,输入:
sudo apt install cmake
查看其版本:
cmake -version
3.CMake介绍
我们把上一篇博客写的muduo_server.cpp用cmake构建编译环境
.a--静态库 .so动态库
CMake命令就是从项目根目录开始找CMakeLists.txt
在文件夹下创建CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
project(main)
# 配置编译选项
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -g)
# 配置头文件搜索路径
# include_directories()
# 配置库文件搜索路径
# link_directories()
# 设置需要编译的源文件列表
set(SRC_LIST ./muduo_server.cpp)
# 设置可执行文件最终存储的路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
# 把.指定路径下的所有源文件名字放入变量名SRC_LIST里面
# aux_source_directory(. SRC_LIST)
# 表示生成可执行文件server,由SRC_LIST变量所定义的源文件编译而来
add_executable(server ${SRC_LIST})
# 表示server这个目标程序,需要连接muduo_net muduo_base pthread这三个库文件
target_link_libraries(server muduo_net muduo_base pthread)
执行cmake .表示在当前文件夹寻找CMakeLists.txt,按照配置文件进行编译,生成makefile文件
执行cmake ..表示在上一级文件夹寻找CMakeLists.txt,按照配置文件进行编译,生成makefile文件
然后执行make,make就会去找makefile
最终生成的可执行文件在bin中。
在大型项目中一般采用如下结构:
- bin:生成可执行文件
- lib:生成的库文件
- include:生成的头文件
- src:源文件
- build:编译过程中产生的临时的中间文件
- test:测试文件
- example:示例
- thirdparty:依赖的第三方库
- 然后在放一个:CMakeLists.txt
- autobuild.sh:一键编译