使用cmake构建项目
本文仅提供使用cmake编译项目的完整思路,cmake的具体语法较多,文章篇幅有限,不做过多介绍,有需要的详见cmake官网。cmake文档
cmake编译过程:
- 编写每个目录下的CMakeLists.txt。
- 利用cmake生成目标文件。
编写CMakeLists.txt
- 单个CMakeLists.txt的简单示例
PROJECT(TEST C) #建立工程TEST,c语言
CMAKE_MINIMUM_REQURIED(VERSION 2.6) #当前所需安装的cmake最小版本,小于该版本报错
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/") #将生成的静态库文件放在lib目录下
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/") #将生成的动态库文件放在lib目录下
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/") #将生成的bin放在bin目录下
IF (NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE "Debug") #设置编译类型为debug
ENDIF(NOT CMAKE_BUILD_TYPE)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) #添加头文件搜索目录
LINK_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) #添加库搜索目录
- 一个完整的简单示例
目录结构如下
-include
func2.h
-src
func1.c
func2.c
新建工程目录PROGECT_DIR,替换<>之间内容
export PROGECT_DIR=<the project dir>
mkdir -p $PROGECT_DIR
cd $PROGECT_DIR
mkdir include
mk