1

AIX 6.5 マシンでソース コードから python 2.6.8 をビルドしようとしていますが、いくつかのモジュールをビルドできません。ビルド プロセスで、XLC のマニュアル ページが飛び出して動かなくなることがあります。qman ページを終了するには を押す必要があり、プロセスは続行されます。ビルドがデフォルトの XLC コンパイラを呼び出すためかどうかを考えており、デフォルトのコンパイラを g++ に変更しようとしています。

make clean
CC=/bin/gcc CXX=/bin/g++ ./configure
make

しかし、うまくいかないようで、XLC のマニュアル ページがまだ表示され、モジュールのビルドに失敗します。

XLC の代わりに g++ を使用するようにするにはどうすればよいですか? ありがとう。

アップデート

その後のログですCC=/bin/gcc CXX=/bin/g++ ./configure

-bash-3.2$ CC=/bin/gcc CXX=/bin/g++ ./configure
checking for --enable-universalsdk... no
checking for --with-universal-archs... 32-bit
checking MACHDEP... aix6
checking EXTRAPLATDIR... 
checking machine type as reported by uname -m... 00F63F144C00
checking for --without-gcc... 
checking for gcc... cc_r
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... no
checking whether cc_r accepts -g... yes
checking for cc_r option to accept ISO C89... -qlanglvl=extc89
checking for --with-cxx-main=<compiler>... no
checking how to run the C preprocessor... cc_r -qlanglvl=extc89 -E
checking for grep that handles long lines and -e... /opt/freeware/bin/grep
checking for egrep... /opt/freeware/bin/grep -E

という行が表示checking whether we are using the GNU C compiler... noされていますが、それは gcc を使用していないということですか?

また、makeのログにも

checking for __attribute__((visibility("hidden")))... no
cc_r: 1501-210 (W) command option t contains an incorrect subargument

上記のログの直後に、xlc の man ページがポップアップします。

4

1 に答える 1

0

cc_r コンパイラーは IBM コンパイラーです。IBM C コンパイラ (および C++ コンパイラ) には、いくつかの呼び出し方法があります。xlc が 1 つであり、_r バリアント (再入可能/スレッドセーフ ライブラリにリンクすることを意味します) は別のものです。cc と c99 のものもあります。なぜそんなに多くの質問をするのですか?まあ、それぞれが共通のオプションの省略形として提供されています。この場合、それぞれが異なる言語標準に対応しています。たとえば、c99 は C99 標準をサポートしています。したがって、コンパイラーに「xl」プレフィックスがないからといって、それが IBM コンパイラーではないということにはなりません。

表示されているマニュアル ページが表示される理由は、どこかで引数を指定せずに、または間違った引数を指定してコンパイラを呼び出していることに注意してください。これがメッセージの原因です

cc_r: 1501-210 (W) command option t contains an incorrect subargument

-t フラグを使用すると、コンパイラの一部を交換できますが、実際にそれを行いたいと思うことはほとんどありません。サブ引数を取ります。

cc_r -tI ...

IPA オプティマイザーのコンパイル時フェーズを交換するつもりだと言います (通常は、新しいコンポーネントの場所を -B で指定します)。

メイクファイルのどこかで -t を指定していて、貧弱なコンパイラを大いに混乱させています。

ところで、make でコンパイラをオーバーライドしたい場合は、CC、CXX、および CCC 変数によって makefile で直接指定できます。makefile を編集する前に、コマンド ラインで指定して試すことができます。./configure を再度実行すると、これらの変更が失われることに注意してください。

make CC=/bin/gcc CCC=/bin/g++ CXX=/bin/g++
于 2013-03-19T16:08:38.737 に答える