2012-01-20 14 views
1

いくつかの標準ライブラリを新しく、cmathなどのコードをコンパイルしています... しかし、gccはそれらを含めることができません。GCC - 標準ライブラリの致命的なエラー

ビルドにはpython3.2 distutilsを使用しました。

これは私にこのエラーを与えます:gcc fatal error: cmath: No such file or directory。私は少しgoogled、おそらく私のgccの設定が良くないとそれは再インストールする必要があります。

glibcとgccとそのすべての依存関係をarchlinux pc:sudo pacman -S --recursive glibc gccに再インストールしようとしましたが、何も変更されていません。

何が問題なのですか?

+4

でのgccのインクルードパスのデフォルトを確認することができます。 'g ++'はC++のインクルードパスを正しく設定し、正しいライブラリとランタイムがプログラムにリンクされていることを確認します。 –

+0

OK問題は、swigインターフェイスファイルを-C++オプション付きswithインターフェイスファイルと一緒にsetup.pyソースに追加したので、swigがmodule.cファイルを生成していてgccがCソースとしてコンパイルしていたことです。だから私は 'swig_opts = [' - C++'、 '-py3']'を追加し、それは正常に実行されます:) – microo8

答えて

6

<cmath>は標準のCヘッダーではありません。これはC++ヘッダーです。 gccの代わりにg++を使用してください。

4

一般的にcmathはC++(g ++)のインクルードパスで、gccではありません。

  1. gccで#include 'math.h'を使用します。 G ++

持つか

  • 使用する#include 'cmath' あなたはC++プログラムを構築するとき、あなたは `G ++`なく `gcc`を使用する必要があります

    echo | gcc -v -E -