Cmake使用
最近在公司,因为需要维护一个小的C语言的项目,因此接触了写有关cmake相关的东西,在这里做一个简单的总结,一开始以为cmake是个十分难用的东西,但是后来才发现对于大型项目的管理,cmake还是十分便捷的,以前还是自己接触的东西太少了,竟然对cmake,Makefile,编译工具链,交叉编译一概不通,才深刻领会到学海无涯。
闲话不多说,这里以自己手动的一个练手用的cmake为例
项目名称:testCmake
包含:build,include,src三个文件夹以及CMakeLists.txt
CMakeLists.txt
注释中有关于参数的含义
#指定cmake version
cmake_minimum_required(VERSION 2.8)
#PROJECT NAME
PROJECT(testCmake)
#HEAD FILE PAHT
INCLUDE_DIRECTORIES(testCmake)
#SOURCE FILE PATH
AUX_SOURCE_DIRECTORY(src DIR_SRCS)
#SET ENVIRONMENT VARIABLE
set(TEST_MATH ${DIR_SRCS}
)
#ADD EXECUTE FILE
ADD_EXECUTABLE(${PROJECT_NAME} ${TEST_MATH})
#ADD LINK LIBRARY
TARGET_LINK_LIBRARIES(${PROJECT_NAME} m)
include diretory
hello.h
#ifndef HELLO_FILE_HEADER_INC
#define HELLO_FILE_HEADER_INC
#include<math.h>
double cal_sqrt(double data);
#endif
src directory,包含两个文件
hello.c
#include "../include/hello.h"
double cal_sqrt(double date){
return sqrt(date);
}
main.c
#include "../include/hello.h"
#include<stdio.h>
int main(){
double a = 64.0;
double b = 0.0;
printf("input a's value:%f\n",a);
b = cal_sqrt(a);
printf("sqrt result is :%f\n",b);
}
以上一个基本的cmake项目已经建立起来,这时候进入build目录下,执行
cmake …/
会生成一系列文件,以及一个可执行文件 testCmake,其他的文件作用还没有具体了解,接着执行
./testCmake
就可以看到运行结果了
这是一个最简单的cmake项目,如果要进行一个复杂的cmake项目,CMakeLists.txt里面还会涉及
COMPILER_PLATFORM
CMAKE_C_COMPILER
CMAKE_CXX_COMPILER
ADD_SUBDIRECTORY( )
#install
INSTALL(FILES ${PROJECT_BINARY_DIR}/out/*** DESTINATION ${PROJECT_SOURCE_DIR}**)
include_directories()
…………
等很多参数使用,有兴趣的话进一步了解一下吧~