CMake是一种跨平台编译工具,主要通过cmake命令将CMakeLists.txt文件转化为make所需要的Makefile文件,再利用make命令编译源代码生成可执行程序或库文件。
1. 示例工程:
2. CMakeLists.txt文件的具体内容如下:
- 指定CMake编译最低要求版本
CMAKE_MINIMUM_REQUIRED(VERSION 3.14) - 给项目命名
PROJECT(MYPRINT) - 收集c/c++文件并赋值给变量SRC_LIST_CPP ${PROJECT_SOURCE_DIR}代表区当前项目录
FILE(GLOB SRC_LIST_CPP ${PROJECT_SOURCE_DIR}/src/.cpp) FILE(GLOB SRC_LIST_C ${PROJECT_SOURCE_DIR}/src/.c) - 指定头文件目录
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include) - 指定生成库文件的目录
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) - 指定生成libmyprint 动态库(默认为静态库)
- SHARED指定生成库类型为动态库 STATIC为静态库
ADD_LIBRARY(myprint SHARED ${SRC_LIST_CPP} ${SRC_LIST_C}) - 指定链接库文件目录
LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/lib) - 将hello.cpp生成可执行文件hello
ADD_EXECUTABLE(hello ${SOURCE}) - 指定hello 链接库myprint
TARGET_LINK_LIBRARIES(hello myprint)
3. cmake命令执行:
编写好CMakeLists.txt文件,cd到项目build执行cmake命令,将会在build目录下生成Makefile文件,再执行make命令,就会在build目录下生成可执行文件。
|