我在使用 GNU makefile 时遇到了一个愚蠢的问题。我想定义两个目标来构建 ac 程序;一个有调试,另一个没有。
runNoDebug: setNoDeb objs runMe
runDebug: setDeb objs runMe
setNoDeb:
{EXPORT} MyDEBUG= -O3
setDeb:
{EXPORT} MyDEBUG="-DDEBUG=1 -g"
objs: cFiles
$(CC) -o $@ $^ $(cFiles) $(CFLAGS) $(LIBS) $(MYDEBUG)
runme: objs
./oo
运行此 makefile 时出现错误,设置调试的命令在子 shell 上执行导致错误。如果添加了“导出”,则该变量在该子外壳中定义。
我想在生成文件本身中定义这个变量,以便在构建对象时使用。
可能吗?或者我应该复制“objs:cFiles”目标吗?