ITKeyword,专注技术干货聚合推荐

注册 | 登录

makefile 不打印 编译语句 技巧

yudingding6197 分享于 2008-08-26

推荐:Linux下GCC和Makefile实例(从GCC的编译到Makefile的引入)

一、确认已经装好了GCC和Make的软件包 如果whereis  gcc和whereis  make命令有结果,说明安装了这两个软件,可以继续往下做。 二、使用GCC编译运行一个HelloWorl

2020腾讯云8月秒杀活动,优惠非常大!(领取2860元代金券),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1040

2020阿里云最低价产品入口,含代金券(新老用户有优惠),
地址https://www.aliyun.com/minisite/goods

我们定义makefile文件:
ifeq ($(VERBOSE),)
SILENCE=@echo "building: "$@ ;
else
SILENCE=
endif

再规则中:
all:test.o
     $(SILENCE) gcc -o prj test.o

这样如果在编译时,输入:make, 就不会打印 gcc -o prj test.o
输入:make VERBOSE=aa 就会打印                      

变量:

准确来说是make的内置变量,比如:CURDIR, SHELL等,不需要赋值,可以直接输出结果

echo $(CURDIR)

Link:

http://blog.sina.com.cn/s/blog_87edb138010172d6.html

如何知道这些变量的值呢?

make -p

输出当前Make的内部数据库,大家可以查到CURDIR等值。

推荐:嵌入式 GCC 64位程序的makefile条件编译心得——32位版与64位版、debug版与release版(兼容MinGW、TDM-GCC)

为了适应现在越来越流行的64位系统,经常需要将代码分别编译为32位版和64位版。其次,除了需要生成debug版用于开发测试外,还需要生成release版用于发布。本文介

 

输出变量信息:

在任何文件加上:

$(error problem $(Var))

就会输出变量$(Var)的结果,同时停止编译


subst 替换

$(subst \,/,$(WIND_BASE))

因为在windows下文件分隔符和Linux正好相反,需要进行替换,否则在Windows运行可能导致错误


推荐:gcc编译过程+Makefile反思

看了一段时间的《程序员自我修养》了,也算对程序的编译,链接,装载的原理有了初步的了解。十分惭愧的是,今天想自己写一个简单的Makefile,竟然很模糊,无法十

我们定义makefile文件: ifeq ($(VERBOSE),) SILENCE=@echo "building: "$@ ; else SILENCE= endif 再规则中: all:test.o      $(SILENCE) gcc -o prj test.o 这样如果在编译时,输入:make,

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。