dポイントプレゼントキャンペーン実施中!

こんにちは。

Emacsは、Gnu Emacs for Windows 23.4 を使っています。
gccのインクルードパスの問題により、Emcasのcompileコマンドで、Cのソースファイルをコンパイルするができなくて困っています。

具体的には、CのソースファイルをEmacsで開き、「M-x compile」と入力した後、ミニバッファで「gcc -c test.c」と入力すると、以下のようなコンパイルエラーが表示されます。
------------------------------------------------------------
gcc -c test.c
test.c:1:19: no include path in which to search for stdio.h

Compilation exited abnormally with code 1 at Sun Jul 08 18:24:05
------------------------------------------------------------
どうやら、インクルードパスが設定されていないようです。

ちなみに、test.cは以下のような非常に単純なCプログラムです。
------------------------------------------------------------
include <stdio.h>

int main(void) {
printf("Hello!\n");
return 0;
}
------------------------------------------------------------

コマンドプロンプトや、ktermといった端末から、同じように
gcc -c test.c
というコマンドを実行すると、エラーが出る事はなく上手くコンパイルできますので、
適切なインクルードパスが設定されているはずです。

どうすれば、Emacsのcompileコマンドから、gccでコンパイルを行う時に使われる、インクルードパスを設定する事ができるのでしょうか?
(gccの-Iオプションで、毎回インクルードパスを設定する必要をなくす方法が知りたいです。)

では、よろしくお願い致します。

A 回答 (1件)

そのgccは、なんのgccでしょうか? MinGW?Cygwin?


Windowsネイティブなktermは無いように思うのですが。

・コマンドプロンプト/ktermで呼び出しているgccと、Emacsからcompileで呼び出しているgccが同一のものか確認する。
・コマンドプロンプト/ktermでの環境変数と、Emacs使用時の環境変数を調べる。
Emacsのは 変数process-environment を調べればわかるのでC-h v process-environment とかで確認
・gcc実行の様子を詳細に確認する
http://oshiete.goo.ne.jp/qa/4149026.html あたりを参考に

以上のような確認をして、原因を絞りましょう。
環境変数が違うのなら、emacs起動用のバッチファイルを書き換えて、追加/削除するようにしましょう。
    • good
    • 0
この回答へのお礼

御回答ありがとうございます。

使用しているgccはMingwのものでした。
環境変数の設定で、
LIBRARY_PATH
C_INCLUDE_PATH
を設定すれば、上手くコンパイルできました。
ありがごうございました。

お礼日時:2012/07/09 07:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!