2011-06-30 38 views
1
私はC99またはgnu99いずれかのコンパイラオプションでGNUstepのプログラムをコンパイルしようとしているが、それが認識されていない

...ここに私のメイクです:-std = c99または-std = gnu99のCFLAGSオプションを認識するためのGNUmakefileの入手方法?

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に含まれている大きなメークファイルですステップ環境。 –

+0

「main.m」18行に問題があると言っています。バグが明らかでない場合は、そのコードのスクラップを 'helloWorld'で分離し、Makeなしでコンパイルしてみてください。 – Beta

答えて

0

一見すると、これは適切なルールの中に変数を変換automakeための入力、のように見える含まメイクファイルの内容を知らなくても:ここ

は、makeからの出力です。どのようにあなたのメークファイルを実行していますか? makeまたは automake makefile.amなどを実行していますか?しようとする

ことの一つは、ちょうどあなたのメイクファイルに行

CFLAGS+=-std=gnu99 

を追加することです。

+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によって与えられたヒントを適用して同様の問題を解決しようとしていました。このポスターは、OBJCFLAGS変数について言及しているGNUstep [documentation](http://www.gnustep.org/resources/documentation/make_1.html#SEC16)を参照しています。オリジナルの投稿を編集して完全なメイクファイルを表示しました。 –

関連する問題