Linux makefile 基础

一:宏

XX = g++
NVCC = nvcc
CFLAGS = -Wall -O -g

后续的使用中XX表示g++

二:target: prerequisite为依赖关系,即目标文件(target)依赖于前提文件(prerequisite)。可以有多个前提文件,用空格分开。

依赖关系后面的缩进行是实现依赖关系进行的操作,即正常的UNIX命令。一个依赖关系可以附属有多个操作。

%.o:%.cpp
	$(XX)             \
	-I $(COMMON_INC)  \  //-I 引入头文件
	-I $(CUDA_INC) 	  \
	-I $(BOOST_INC)   \
	-I $(OPENCV_INC)  \
	-L /usr/local/lib/ //-L引入库文件
	-lopencv_core //连接时搜索指定的函数库opencv_core
	-c $< -o $@  //-c 只编译并生成目标文件

三:wildcard和patsubst是makefile中几个有用的函数

makefile里的函数使用,和取变量的值类似,是以一个‘$’开始,然后是一个括号里面是函数名和需要的参数列表,多个变量用逗号隔开,像这样

return = $(functionname arg1,arg2,arg3...)。

1.wildcard搜索当前目录下所有以.c,.c++结尾的文件,生成一个以空格间隔的文件名列表,并赋值给SOURCES

SOURCES = $(wildcard *.c *.cpp ) 

2.patsubst是patten substitude的缩写,匹配替代的意思。这句是在SOURCES中找到所有.cpp 结尾的文件,然后把所有的.cpp换成.o。

OBJS = $(patsubst %.cpp,%.o,$(SOURCES))

参考

makefile中的notdir,wildcard和patsubst

Linux GCC常用命令

C编译: makefile基础

GCC 参数详解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值