加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

makefile 简单用例

发布时间:2020-12-15 07:15:00 所属栏目:安全 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #========命令==[简单示例根据实际修改添加 ]CC=gcc#c语言编译命令AR=ar#编译静态库命令LD=ld#编译动态库命令RM= rm -rf#强制删除命令,一般用于删除.

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

#========命令==[		简单示例根据实际修改添加 		]
CC			=	gcc				#c语言编译命令
AR			=	ar				#编译静态库命令
LD			=	ld				#编译动态库命令
RM			= 	rm -rf			#强制删除命令,一般用于删除	.o	文件
#========参数(nameFLAGS) ===================
#C语言编译器参数
CFLAGS		=	-g -Wall	$(HFFLAGS)
#编辑静态库参数		.a	静态库后缀
AFLAGS		=	-r
#编辑动态库参数		.so	动态库后缀
SOFLAGS	=	-fPIC -shared
#FH(head file)头文件路径参数	-I.(当前路径)	默认有:/usr/local/include/	和	/usr/include/
HFFLAGS	=	-I.
#LD(library dir)库路径参数		-L.(当前路径)	默认有:/usr/local/lib/		和	/usr/lib/ 
LDFLAGS	=	-L.		
#LD(library name)库名称参数	-lNAME	等价搜索路径下的 libNAME.a 或 libNAME.so
#非系统默认库必须指明使用那些库	如:libpthread.a	Linux系统下的线程库 
LMFLAGS	=	-lWorld	-lpthread
LDMFLAGS	=	$(LDFLAGS)	$(LMFLAGS)
#优化参数
OFLAGS		=	-O0				
#========目标==============================
#所有生产目标
all			:	libaray	excute  
#编译成库的文件名	如:libWorld.so
libaray		:	libWorld.so
#编程成执行文件的文件名	如:hello
excute		:	hello
#========编译==============================
#%o:%c 旧格式 .c.o:	所有的[.c]文件生成相应的[.o]文件。若生成目标是"a.o b.o",那么"%c"就是"a.c b.c"。
#[Tab]$(CC)则替换为前面赋值的内容,每个命令前面必定为Tab
%o:%c
	$(CC) $(CFLAGS) -c $<	
#编译执行文件
hello	:hello.o	libWorld.so
	$(CC) $(LDMFLAGS)	[email?protected]  $?
#编译动态库
libWorld.so:World.o
	$(CC) $(SOFLAGS)	[email?protected]  $?
#可用make -f makefile.steel clear清除
clean:
	$(RM) *.o

#========  以下为解释,非makefile脚本

[email?protected]: 规则中的目标名(也就是规则名)。$<:  规则中的依赖项目,只代表规则所有依赖项目中的第一项!$^:  规则中所有的依赖项目。$?:  规则中时间新于目标的依赖项目
make  -f  makefile.linux clear调用clean
make  -f  makefile.linux > log.txt 将编译过程的内容保存在log.txt中

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读