cmake初探

本文主要是希望通过使用cmake构建一个简单的工程,来学习cmake的一些指令
存在如下的目录结构,其中include存放头文件,src存放源码,lib存放库文件(静态或动态库)

├── CMakeLists.txt
├── include
│   └── sum.h
├── lib
├── src
│   ├── main.cpp
│   └── sum.cpp

下面通过三种方法构建工程:

1、直接编译源码

cmake_minimum_required (VERSION 2.6)
 
project (Helloworld)

INCLUDE_DIRECTORIES(include)

SET(SRC src/main.cpp src/sum.cpp)

ADD_EXECUTABLE(Helloworld ${SRC})

2、通过生成静态库,链接到可执行文件

首先通过

cmake_minimum_required (VERSION 2.6)
 
project (Helloworld)

SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

INCLUDE_DIRECTORIES(include)

SET(SRC src/main.cpp)

add_library(sum STATIC src/sum.cpp)

生成静态库,然后通过调用静态库构建工程

cmake_minimum_required (VERSION 2.6)
 
project (Helloworld)

INCLUDE_DIRECTORIES(include)

SET(SRC src/main.cpp)

link_libraries("/Users/zhang/Desktop/test/lib/libsum.a")

ADD_EXECUTABLE(Helloworld ${SRC})

3、通过生成动态库,链接到可执行文件

生成动态库方法同2,只不过需要把STATIC改成SHARED

add_library(sum SHARED src/sum.cpp)

链接方式为

link_libraries("/Users/zhang/Desktop/test/lib/libsum.dylib")

常用指令

1、set(target path):设置环境变量
2、include_directories(path):添加头文件路径
3、link_directories(path):添加库文件路径
4、link_library(path/xxx.so或者.a, .dylib):添加链接库
5、add_library(target [SHARED/STATIC] source):生成库文件
6、add_executable(target source): 生成可执行文件

你可能感兴趣的:(cmake初探)