仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1043|回复: 8
打印 上一主题 下一主题

[其他Linux] linux教程之体系编译:怎样给Make命令来传送参数

[复制链接]
乐观 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 16:51:41 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rloginrcp、finger、mail、nslookup
在编译体系的时分,我们一样平常只需复杂的输出make实行就能够了。但偶然候,我们仍是必要让make命令带进一些参数给makefile剧本。
好比,你在代码内里必要界说一个宏DEBUG来翻开调试开关,代码以下:

intmain()
{
inti=9;
#ifdefDEBUG
i=1;
#else
i=0;
#endif
printf("i=%d
",i);
return0;
}

一样平常来讲,这个宏界说能够经由过程间接修正源代码举行,但如许明显不是很好的举措。别的一个举措是经由过程makefile修正,好比:

CFLAGS=-g-Wall-DDEBUG
object=myprog
all:$object
myprog:a.c
gcc${CFLAGS}a.c-o${object}

假如更进一步,连makefile都不想修正,我们能够经由过程向make命令传送参数来举行,为此,我们必要得当的修正makefile以下:

CFLAGS=CFLAG
CFLAGS+=-g-Wall-DDEBUG
object=myprog
all:$object
myprog:a.c
gcc${CFLAGS}a.c-o${object}

此时,假如想翻开DEBUG宏,我们能够如许输出make命令:

[ychq@ICM3-2net]$makeCFLAG=-DDEBUG
gcc-g-Wall-DDEBUGa.c
a.c:Infunction`main:
a.c:9:warning:implicitdeclarationoffunction`printf[ychq@ICM3-2net]$

我们能够发明,DEBUG宏已被准确的传进。
更进一步的,我们能够经由过程传送分歧的参数给make,让make编译分歧的模块

</p>
功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和grep命令,可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-3 15:56

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表