文章整合
CMake项目管理-单个文件
CMake项目管理-多个文件同级目录
CMake项目管理-多个文件不同目录
CMake项目管理-生成共享动态库和静态库
目的:将calc 封装成so,供其他人调用
代码层级
测试代码
calc.h
#ifndef CALC_H
#define CALC_H
double power(double base, int e);
#endif
calc.cpp
#include "calc.h"
double power(double base, int e)
{
double re = 1;
if( e == 0) return 1;
while(e --)
{
re *= base;
}
return re;
}
编写CMakeLists.txt
生成动态库
# 添加当前目录下所有源文件
aux_source_directory(. LIB_SRC)
# 当前目录下的文件生成一个链接库
add_library(calc SHARED ${LIB_SRC})
生成静态库(不需要SHARED)
# 添加当前目录下所有源文件
aux_source_directory(. LIB_SRC)
# 当前目录下的文件生成一个链接库
add_library(calc ${LIB_SRC})
进行编译
mkdir build && cd build
cmake .. && make