2011-06-30 346 views
1

我试图编译编译器选项或者C99或gnu99一个GNUstep的程序,但它不被认可......这是我的makefile:如何让GNUmakefile识别-std = c99或-std = gnu99的CFLAGS选项?

include $(GNUSTEP_MAKEFILES)/common.make 

TOOL_NAME = triangular 
triangular_C_FLAGS = -std=gnu99 
triangular_HEADERS = 
triangular_OBJC_FILES = main.m 
triangular_RESOURCE_FILES = 

include $(GNUSTEP_MAKEFILES)/tool.make 

任何人都可以点我在正确的方向或让我知道我做错了什么?

下面是使输出:

This is gnustep-make 2.6.0. Type 'make print-gnustep-make-help' for help. 
Making all for tool triangular... 
Compiling file main.m ... 
main.m: In function 'main': 
main.m:18:3: error: 'for' loop initial declarations are only allowed in C99 mode 

main.m:18:3: note: use option -std=c99 or -std=gnu99 to compile your code 
make[3]: *** [obj/triangular.obj/main.m.o] Error 1 
make[2]: *** [internal-tool-all_] Error 2 
make[1]: *** [triangular.all.tool.variables] Error 2 
make: *** [internal-all] Error 2 
+1

你没有给我们足够的信息继续下去当你尝试运行这个时会发生什么?tool.make和common.make是什么样的? – Beta

+0

我添加了make的输出。tool.make和common.make是GNU包含的大型makefile步骤环境。 –

+0

这就是说'main.m'中有一个问题,第18行。如果这个错误不明显,尝试在'helloWorld'中隔离这段代码并手工编译,而不使用Make。 – Beta

回答

0

乍一看和不知道所包含的Makefile这看起来像automake输入,该变量转换成适当的规则的内容。你如何运行你的makefile?你只是运行makeautomake makefile.am或其他东西?

一件事是尝试只

CFLAGS+=-std=gnu99 

添加行至你的makefile。

+0

感谢您的回答。我只是在运行make。我尝试了上述,但不幸的是仍然得到了错误。 –

0

我对GNUstep一无所知,但the documentation似乎表明您应该使用triangular_CFLAGS(C和FLAGS之间没有下划线)。

另外,我对ObjC的了解甚少,但我想知道是否不应该使用triangular_OBJCFLAGS来代替?

0

另一个远投:

export triangular_C_FLAGS = -std=gnu99 

(这些makefile似乎递归)。如果不工作,你必须找到正试图建立main.o规则。

0

启发我在我的项目面临着类似的问题,并使用由@eriktous建议OBJCFLAGS变量为我工作那么,在你的项目,试试这个:

include $(GNUSTEP_MAKEFILES)/common.make 

TOOL_NAME = triangular 
triangular_OBJCFLAGS = -std=c99 
triangular_HEADERS = 
triangular_OBJC_FILES = main.m 
triangular_RESOURCE_FILES = 

include $(GNUSTEP_MAKEFILES)/tool.make 
+0

你能解释一下吗?也许添加一个参考? – Shahbaz

+0

我试图通过应用@eriktous在此问题的回复中给出的提示来解决类似问题。该海报引用了GNUstep [文档](http://www.gnustep.org/resources/documentation/make_1.html#SEC16),其中提到了OBJCFLAGS变量。我编辑了我的原始文章以显示完整的makefile。 –

相关问题