2009-09-06 14 views
11

でのプログラミングはEmacsでのMx Flymakeモードを実行しようとするとしながら、私が取得:Flymake構成エラーC

Flymake: Configuration error has occured while running (make -s -C ./CHK_SOURCES=helloworld_flymake.c SYNTAX_CHECK_MODE=1 check-syntax). Flymake will be switched OFF 

は私がhelloworld.cと呼ばれるバッファ内のコマンドを実行しています:

#include <stdio.h> 

int main(void) { 
    printf("Hello World"); 
    return 0; 
} 

私はUbuntuの9.04の下でGNU Emacsの23.0.91.1を実行している

helloworld: helloworld.c 
gcc helloworld.c -o helloworld 

:と同じディレクトリにあるMakefileという名前のファイルを持っています。

ありがとうございます!

答えて

1

これはメークファイルの実際の内容ですか? 2行目の前にスペースがあるように見えます。 SOエディタがスペースに私のタブ文字を変換しているようだ、だからそれをしないことを、念頭に置いて

helloworld: helloworld.c 
    gcc helloworld.c -o helloworld 

キーピング:

helloworld: helloworld.c 
gcc helloworld.c -o helloworld 

より、次のように:これは、タブことになっています。

helloworld: helloworld.c 
<press tab here>gcc helloworld.c -o helloworld 
+0

はい、私はスペースではなくタブを使用しています。私がシェルに "make"とタイプするとコンパイルがうまくいきます。 –

19

Makefile' must contain theチェック構文 'target。これをMakefileに追加してください:

check-syntax: 
    gcc -o nul -S ${CHK_SOURCES} 

2番目の行を開始するには、必ずTABを使用してください。また、メイクファイルに大文字Mを付ける必要があるflymakeのバグがあります。たとえば、makefileと呼ぶとうまくいかないでしょう。それに気をつけろ!

+0

この方法の問題は、複数のファイルが存在する場合にgccが動作することを許可しないことです。とにかくこれを回避するには? gcc:致命的なエラー:複数のファイルで-o、-c、-Sまたは-Eを指定できません コンパイルが終了しました。 – Silverdev

+0

1行: 'check-syntax:; g ++ -o nul -S $ {CHK_SOURCES} --std = C++ 14; rm nul' – pank