本文主要是希望通过使用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): 生成可执行文件