一、cmake与make的区别
make工具是一个自动化编译工具,它会根据Makefile中的规则进行批处理编译。当需要编译的文件较多时,使用make工具会大大提高效率。
但是,当项目较大时,编写Makefile也成为了一件复杂的事,因此就出现了cmake工具,cmake工具会根据CMakeLists.txt生成Makefile。
流程如下:
二、CMakeLists.txt文件编写
CMakeLists.txt文件的编写主要包括以下7个步骤:
#1. 指定cmake版本
cmake_minimum_required(VERSION 3.17)
#2. 指定项目的名称
PROJECT(demo)
#3. 指定C++标准和编译选项等
set(CMAKE_CXX_STANDARD 14)
#4. 指定源文件目录
set(SOURCE_FILES src)
#5. 指定头文件目录
INCLUDE_DIRECTORIES(include)
#6. 添加生成可执行文件需要的源文件
ADD_EXECUTABLE(${PROJECT_NAME} ${SOURCE_FILES})
#7. 添加可执行文件所需要的库文件
#用link_directories指定静态链接库目录和动态链接库目录 或者 用find_package和find_library得到库文件的绝对路径
TARGET_LINK_LIBRARIES(${PROJECT_NAME} pthread)