0

Sun コンパイラを使用して Solaris で python モジュールmsgpack-pythonをビルドしようとしていますが、python ./setup.py ビルド中に次のエラーが発生します。

/opt/SUNWspro/bin/cc -DNDEBUG -O -xO3 -m32 -xarch=sparc -I/opt/csw/include -xcode=pic32 -I/opt/csw/include/python2.6 -c msgpack/_msgpack.c -o build/temp.solaris-2.10-sun4v-2.6/msgpack/_msgpack.o
"/usr/include/stdbool.h", line 42: #error: "Use of <stdbool.h> is valid only in a c99 compilation environment."

また、ここで述べたように「-std=c99」を追加してコンパイルを試みました: Solaris の Node.JS

しかし、最終的には:

cc: 警告: 無効なオプション -d=c99

この stdpool.h エラーが何であるか、およびそれを回避する方法について、誰でもアイデアを持っています。

ありがとう。

4

2 に答える 2

0

次のエクスポートを試してください。

export CFLAGS="-D_XOPEN_SOURCE=500 -D__EXTENSIONS__ -features=extensions"

そして、configureスクリプトを再度実行し、再コンパイルします。C99準拠はもう必要ないと思います。ほとんどの OpenSource SW では、システム ヘッダーのより多くの OpenSource 動作を切り替えるために、この定義が必要です。

pkgsrcを使用して OS ソフトウェアをコンパイルすることをお勧めします。そのようなトリックを自動的に行います。

于 2012-07-14T22:07:17.727 に答える
0

実行している Sun Studio のバージョンはわかりませんが (これは、使用している Solaris 10 リリースをサポートしているかどうかという点で重要です)、C99 モードを取得するには、次の 2 つの方法のいずれかを実行できます。

  1. コマンドを実行します/opt/SUNWspro/bin/c99。これは、Sun CC コンパイラを C99 モードで開始するラッパー実行可能ファイルです。

  2. -xc99フラグを指定してコマンドを実行します。これにより、コンパイラで C99 モードもトリガーされます。

    /opt/SUNWspro/bin/cc -xc99 ...

または、GCC コンパイラ (通常は にインストールされ/usr/sfw/bin/gccています) を使用して、この C モジュールをコンパイルすることもできます。これは、-std=c99フラグ オプションをサポートするコンパイラです。私の Solaris が正しく動作したことを覚えていれば、Solaris にgcc含まれている は Sun のものを使用し、システムldの通常のリンクと同様にリンクします (各コンパイラの C++ バージョンにはまったく当てはまりません)。libc.socc

于 2012-07-13T00:26:44.363 に答える