cmake 和 makefile的模板
前言
这篇主要是最近在用makefile和cmake。这玩意吧,就贼容易忘,我就默默写一篇小短文记录一下。就是放一个模板,以后直接在模板上做改动。
一、makefile
# EXECUTABLE为目标的可执行文件名, 可以根据具体的情况对其进行修改。
EXECUTABLE := test
# 修改隐含规则中宏
CROSS_COMPILE = /usr/bin/
CC = $(CROSS_COMPILE)gcc
# 列出工作目录下所有以“.c”结尾的文件,以空格分隔,将文件列表赋给变量SOURCE
SOURCE := $(wildcard *.c)
# 调用patsubst函数,生成与源文件对应的“.o”文件列表
OBJS := $(patsubst %.c, %.o, $(SOURCE))
# 编译所有".o"文件生成可执行文件
all : $(EXECUTABLE)
$(EXECUTABLE) : $(OBJS)
@$(CC) $(OBJS) -o $(EXECUTABLE)
# 声明伪目标
.PHONY : clean
# 删除所有中间文件和目标文件
clean :
@rm -f $(EXECUTABLE) $(OBJS) *.o
二、cmake
# cmake verson,指定cmake版本
cmake_minimum_required(VERSION 3.5)
# 设置gcc或者g++对应的路径
# SET(CMAKE_CXX_COMPILER /usr/bin/g++)
# project name,指定项目的名称,一般和项目的文件夹名称对应
PROJECT(example)
# head file path,头文件目录
INCLUDE_DIRECTORIES(
include
)
# source directory,源文件目录
AUX_SOURCE_DIRECTORY(. DIR_SRCS)
# 指定一些编译选项
#set(CMAKE_CXX_FLAGS "-g -Wall -I C:\\Program Files (x86)\\CodeBlocks\\MinGW\\include -L C:\\Program Files (x86)\\CodeBlocks\\MinGW\\lib")
# add executable file,添加要编译的可执行文件
#add_executable(${PROJECT_NAME} ${DIR_SRCS})
add_executable(${PROJECT_NAME} ${DIR_SRCS})
# 生成可执行文件(这是指定某一个文件)
#add_executable(${PROJECT_NAME} main.cpp)
# 生成.so (${DIR_SRCS}代表遍历源目录)
add_library(${PROJECT_NAME} SHARED ${DIR_SRCS})
总结
总体而言,makefile要写的东西要繁琐一些,还有很多符号,我过两天就会忘了(捂脸)。cmake感觉就是一个自动生成makefile的东西。相对而言更简单一些~