Makefile中echo -e 以及 输出$()和%.o 这两个字符串的问题
发布网友
发布时间:4小时前
我来回答
共1个回答
热心网友
时间:2024-10-01 06:36
背景
有次我在写makfile时,用echo -e要显示带颜色的文字,命令如下:
echo -e “Full Version is:33[31m33[1m v1.0 33[0m”;
该命令在控制台中单独执行都显示正常,效果如下:
Full Version is: v1.0
可以放在makefile中一运行, 结果把-e也显示出来:
-e Full Version is: v1.0
原因
这是由于不同的shell(一个是bash,一个是dash)造成的两种不同的结果,即在bash下正常,在dash下就多显示了一个-e。
从Ubuntu 6.10开始,默认使用的shell是dash,而不是bash,原因是dash更快、更高效,使用dash可以加快启动速度。
我们可以做如下实验来验证下,先启用bash运行下指令,再启用dash试试:
$ /bin/bash$ echo -e "Full Version is:33[31m33[1m v1.0 33[0m";Full Version is: v1.0$ exitexit$$ /bin/dash$ echo -e "Full Version is:33[31m33[1m v1.0 33[0m";-e Full Version is: v1.0$ exit$
Makefile中echo -e 以及 输出$()和%.o 这两个字符串的问题
有次我在写makfile时,用echo -e要显示带颜色的文字,命令如下:echo -e “Full Version is:33[31m33[1m v1.0 33[0m”;该命令在控制台中单独执行都显示正常,效果如下:Full Version is: v1.0 可以放在makefile中一运行, 结果把-e也显示出来:-e Full Version is: v1.0 原因 这是由于...
[Linux]编写一个简单的C语言程序,编写Makefile文件。
如在上面的makefile例中,第三行以Tab字符开始的cc命令即是一个命令行,说明要生成hello应执行的命令。也可以写成:hello:hello.o;cc –c hello –L… 一般情况下,命令行的命令会在标准输出中回显出来,如对上面的makefile执行make时,标准输出如下: cc -c hello.c cc -o hello -L/usr/X11R6/lib -L/usr/...
解释一下这句makefile什么意思 %.o: %.c @echo Building $@;$(
.o:%.c 用目录下的点c文件生成点o文件 @echo Building $@ 打印一下正在编译的东西。 $(cc) 后面的即是 把点c编译成点o文件 比如你目录下有test.c 那就是 gcc -c -o test.o test.c
makefile中“${MODS:%=%.beam}”是什么含义?
1. ${MODS:%=%.beam} 是Makefile 变量替换的一种方式.其格式是 $(var:%.c=%.o)或${var:.c=.o},其意思是把.c 为结尾的变量替换成.o2. %则代表任意匹配之外的字符串.实例:source:main.c onvif.cobject:$(var:%.c=%.o)这个时候 %分别等于 main 与 onvif 而 object 则等于 main....
makefile 中,出现$$(M) 是什么意思,我一般$(M)这么用
echo $VAR然后交给shell去解释执行,可是对于这个shell命令来说VAR是一个为定义的变量,因此输出的结果就是个空行。makefile代码段2:VAR=3 target: prerequsite1 prerequsite2 echo $VAR;\ (1')VAR=4;\ (2')echo $VAR;\ (3')echo $$VAR (4')在代码段2中,所有的shell命令...
在shell编程命令中,换行符号是什么?
2、第二种输出换行:使用echo-e$a,他输出字符a,然后一个换行,然后输出字符b 这个-e选项就是启用启用反斜杠转义功能 3、第三种输出换行:另一种输出换行的样例是printf$a,输入命令printf$a时,他输出字符a,然后一个换行,然后输出字符b。printf默认启用反斜杠转移功能。与echo命令不同的时echo在...
在linux中,使用 echo $$ 其中$$是什么意思?
语 法:echo [-ne][字符串]或 echo [--help][--version]补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。参 数:-n 不要在最后自动换行-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:\a 发出警告声;\b ...
DOS 中的符号是什么意思 比如% $都是做什么的?急求答案谢谢高手_百度...
for 对一组文件中的每一个文件执行某个特定命令(更多说明见for命令及变量) echo on或off 打开或关闭echo,仅用echo不加参数则显示当前echo设置 echo 信息 在屏幕上显示出信息 echo 信息 >> pass.txt 将"信息"保存到pass.txt文件中 findstr "Hello" aa.txt 在aa.txt文件中寻找字符串hello find 文件名 查找...
shell 同时获取(grep)一条命令得到的结果中的两个字符串
用grep -w精确匹配就可以了 比如需要获取的文件里面包含两行:192.168.0.1 192.168.0.1:80 如果用grep匹配192.168.0.1的话取得的结果是两行 如果用grep -w来匹配的话只能取得:192.168.0.1这一行
makefile编译问题:Undefined symbol main first referenced in file...
不知道你是用什么来连接目标文件的,如果是用ld的话就加上"-e main",作用是指定程序入口点为main