cmake 和 makefile的模板

本文主要记录了作者在使用makefile和CMake过程中的一些心得,提供了一份模板以便日后参考。文章指出,虽然makefile需要编写更多细节且易忘,但CMake可以自动生成makefile,使用起来更为简便。
摘要由CSDN通过智能技术生成

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的东西。相对而言更简单一些~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值