【发布时间】:2014-02-17 06:41:04
【问题描述】:
我在 make 文件中有一行用于编译 c 程序,如下所示
$(CC) -c -o $@ $< $(CFLAGS)。我每次都必须修改代码中的特定行并再次编译。修改只是函数的参数。我在一个文件中有参数,我使用sed 实用程序修改我的c 源代码,然后编译。我想看看哪些争论导致编译成功。我尝试使用这个$(CC) -c -o $@ $< $(CFLAGS) ; echo $? >status,我希望如果编译成功status 文件会有一个条目0。但我在status 文件中看到了源文件名。我知道$? 也是一个自动变量。如何在 makefile 中读取 shell 变量 $? ?我尝试过使用$(CC) -c -o $@ $< $(CFLAGS) ; echo $$? >status 和$(CC) -c -o $@ $< $(CFLAGS) ; echo $(shell echo $?) >status,但没有得到正确的结果。
【问题讨论】:
-
转义
$是正确的(使用echo $$? > status)。 “没有得到正确的结果”是什么意思?你得到了什么结果? -
您使用的是类 Unix 操作系统吗?因为在 Windows 上
$?被称为%errorlevel%
标签: gnu-make