• 締切済み

gccとPython.hのパス

cygwinでPythonの拡張モジュールを作成しようとgcc test.c とすると、Python.hがありませんと表示されます。 インクルードパスを通すにはどのようにしたら良いのでしょうか? //test.c #include <Python.h> ..

  • Python
  • 回答数1
  • ありがとう数1

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

gcc のマニュアルを読めば「-I オプションで指定する」ことがわかるはずなんだが....

関連するQ&A

  • Emacsでのgccのインクルードパスの設定方法

    こんにちは。 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オプションで、毎回インクルードパスを設定する必要をなくす方法が知りたいです。) では、よろしくお願い致します。

  • Pythonで、C言語のモジュールを利用したい!

    初めまして。 どなたか回答いただければ幸いです。 Pythonで利用できるモジュールを、C言語で作成したいと思っているのですが、方法が良くわかりません。 現在、Windowsで、CygwinのGCCを用いて、C言語をコンパイルしています。 GCCでコンパイル→DLLファイル作成→Pythonで利用? という大まかな流れかな~と思いまして、 見よう見まねで、 $gcc -shared test.o -o testmodule.dll というコマンドでDLLファイルを作成して、それをPythonで認識できるフォルダに格納して、Pythonのプロンプトで、 >>>import testmodule(あるいは、import testmodule.dll) とかやったのですが、 ImportError: DLL load failed: 指定されたモジュールが見つかりません。 と言われてしまいました。 鋭意調査中ですが、ご存知の方がおられましたら、 ご教授お願いいたします。

  • KPIT GCCでno include path

    H8のKPIT GNU Tools (v11.02, Windows版) を使ってmakeしたところ、 "no include path in which to search for stdio.h" とエラーが出ます。 エラーの出た行の内容は、 #include <stdio.h> であり、これでエラーが出る理由がわかりません。 試しに、("#include <stdio.h>"を用いる) hello.cを作って、h8300-elf-gccでコンパイルしたところ、特にエラーもなくコンパイルできました。 インクルードパスがおかしいのかとも思いますが、Makefileにはその設定は指定してませんので、デフォルト状態のはずです。 どうぞよろしくお願いします。

  • gccのインクルードパスの確認

    #include <stdio.h> は デフォルトのインクルードパス(/usr/include/)からstdio.hファイルを 探しますよね? http://oshiete1.goo.ne.jp/kotaeru.php3?q=2006018 ここに書いてあるように gcc -print-search-dirs を実行してみたのですが、/usr/include の記述は 含まれていませんでした。 http://www.sra.co.jp/wingnut/gcc/gcc-j.html で-print-search-dirsのオプションの意味を見てみましたがよくわかりませんでした。

  • cygwinのgccが、エラーになってしまいます。

    テストプログラム $ cat test.c #include <stdio.h> int main (void) { printf("Hello, World!\n"); return 0; } これを、コンパイルすると $ gcc test.c gcc: error trying to exec '/usr/lib/gcc/i686-pc-cygwin/4.5.3/cc1.exe': execv: Bad address /usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../libcygwin.a(libcmain.o):(.text+0xba): undefined reference to `_WinMain@16' collect2: ld はステータス 1 で終了しました と、このようなエラーが出てきました。 ファイルを確認しても、何も作られていません。 $ ls test.c 対処方法を、ご教示願います。

  • cygwin gcc c99 での isnormal と strtold の使用

    Cygwinのgccで-std=c99オプションを付けて 以下のコードをコンパイルしようとしています。 #include <stdlib.h> #include <math.h> int main() { isnormal(0.123); strtold("0.123", NULL); return 0 ; } $> gcc -std=c99 test_strtold.c ですが、コンパイルできず、2つの関数とも'undefined reference'になります。 -std=c99を付けてコンパイルする方法または この記述と同等の別の記述がありましたらご教授願います。 よろしくお願いいたします。

  • GCCコンパイラ作成時にmemory.hも作成する方法

    GCCコンパイラ作成時にmemory.hも作成する方法 TOPPERS/JSPのコンフィグレーションツールを ビルドしたく、ビルド実績のあると耳にした GCC3.4.4をCygwin上に作成しました。 GCC3.4.4は以下の3つから作成しました。 ・binutils-2.16.tar.bz2 ・gcc-3.4.4.tar.bz2 ・newlib-1.14.0.tar.gz GCC3.4.4の作成手順は、Web上に掲載されている手順を 参考にして、以下の通り実施しました。 ■binutilsのインストール $ tar zxvf ./binutils-2.16.tar.gz $ cd binutils-2.16 $ ./configure --target=i686-elf --prefix=/cygdrive/c/cygwin/usr/local/gnu $ make $ make install ■gccのインストール $ tar xvjf ./gcc-3.4.4.tar.bz2 $ tar zxvf ./newlib-1.14.0.tar.gz $ export PATH=$PATH:cygdrive/c/cygwin/usr/local/gnu/bin/ $ cd gcc-3.4.4 $ ./configure --target=i686-elf --prefix=/cygdrive/c/cygwin/usr/local/gnu --with-newlib --with-headers=/cygdrive/c/cgywin/usr/local/src/gnu/newlib-1.14.0/newlib/libc/include/ --disable-bootstrap --enable-languages="c,c++" $ make $ make install しかしながら上記の手順で作成すると、コンパイラ作成時に memory.hが作成されません。 そのため、コンフィグレーションツールのビルドが成功しません。 そこで、教えていただきたいのですが、 そもそもGCC3.4.4のコンパイラを作成する際にmemory.hも一緒に作成し、 GCC3.4.4のg++がインクルードする設定にできるのでしょうか? できる場合は、作成に必要な手順を是非とも教えてください。

  • cygwinのgccで正常にコンパイルできない。

    cygwinのgccで正常にコンパイルできない。 cygwinのvimで、以下のプログラムを書きました。 ------------------------------------------------------------- #include <stdio.h> int main(void) { int no; printf("Please input something:"); scanf("%d", &no); printf("It is %d that you input it:\n", no); return (0); } ------------------------------------------------------------- それからgccでコンパイルしました。 コマンドは以下の通りです。 $ gcc test.c すると以下のエラーが出ました。 test.c:10:9: warning: unknown escape sequence: '\033' このようにコンパイルできない状態です。 どのようにすると正常にコンパイルできるようになるでしょうか?

  • bccは分かりましたがgccが使えません

    Cのソースの#include <stdio.h>でエラーになります。 gccではbccのbcc32.cfgで行うような設定はどのようにすればよいですか? MINGWのコンソールで $ echo $C_INCLUDE_PATH c:/msys/1.0/mingw/include;c:/msys/1.0/mingw/lib/gcc/mingw32/3.4.5/include このように出ます。 $ gcc myapp.c で#include <stdio.h>の行でコンパイルエラーです。 MINGWでは$C_INCLUDE_PATHを正しく設定できているみたいですが、gcc.exeにそれが伝わっていないみたいです。 AUTOEXEC.BATには何も追記したくないので何も追記していません。 どうすればライブラリのパスを通せますか?

  • cygwinでのgcc

    畏れ入ります。 UNIXどタコですm(__)m 最近CYGWINで簡単にUNIXが体験できるということで早速インストールしました。 KDEとGNOME無事起動しました。 で、実は図書館で「Xlibで簡単プログラミング」というのを借りてきたので、ちょっと遊んでみようと思いとりあえずc言語がコンパイル、実行できるかどうかやってみたのですがうまくいきませんでした。 #include <stdio.h> int main(){ printf("HelloWorld \n"); } のようなプログラムをvimで作成するところまではうまくいきました。homeディレクトリに作成されていました。 それで gcc hello.c とやればよいのですよね?! 実は文字がたくさん出て、コンパイルできたのかどうか・・・?そして、a.outというファイルができるのですよね?間違っていますでしょうか? とりあえず、できていません・・・(>_<) ./a.out としても、no fileです・・・ なにか間違っていますでしょうか?

専門家に質問してみよう