2
我在使用GNU makefile时遇到了一个愚蠢的问题。 我想定义两个目标来构建一个c程序;一个用调试,另一个不用。在Makefile命令中设置变量
runNoDebug: setNoDeb objs runMe
runDebug: setDeb objs runMe
setNoDeb:
{EXPORT} MyDEBUG= -O3
setDeb:
{EXPORT} MyDEBUG="-DDEBUG=1 -g"
objs: cFiles
$(CC) -o [email protected] $^ $(cFiles) $(CFLAGS) $(LIBS) $(MYDEBUG)
runme: objs
./oo
运行此makefile时出现错误,设置调试命令在子shell上执行导致错误。如果添加了“导出”,则该变量在该子外壳中定义。
我想在构建对象时使用的makefile iteself中定义这个变量。
可能吗?或者我应该复制“objs:cFiles”目标?
的可能重复[我如何配置我的makefile调试和发布版本?(http://stackoverflow.com/questions/1079832/how-can-i-configure-my-makefile-用于调试和释放,构建) – Mark 2012-07-24 11:38:56