1

Intel バージョン 12.1.3 を使用していることを除いて、この投稿で説明されているのと同じ問題があります。(g++のヘッダーは、icpc 使用時に定義されていないもので<functional>保護されています。)#ifdef __GXX_EXPERIMENTAL_CXX0X__

を使用する代わりにboost::functional、gcc4.7 をインストールしてその std ライブラリを使用したかったのです。

Ubuntu 11.10では持っていますが、パッケージからgcc4.6.1もインストールしました。gcc4.7gcc-snapshot

Intel には、-gcc-name-gxx-name、およびのオプションがあります-cxxlib。だからもともと私はコンパイルしました:

-std=c++0x -gcc-name=/usr/lib/gcc-snapshot/bin/gcc -gxx-name=/usr/lib/gcc-snapshot/bin/g++ -cxxlib=/usr/lib/gcc-snapshot/

しかし、私はエラーが発生します:

icpc: error #10282: file '/usr/lib/gcc-snapshot/bin/usr/lib/gcc-snapshot/bin/g++' not found, generated based on '-cxxlib=/usr/lib/gcc-snapshot/'

それで、私は次のようにコンパイルしました:

-std=c++0x -gcc-name=./gcc -gxx-name=./g++ -cxxlib=/usr/lib/gcc-snapshot/.

しかし、私はまだ警告とエラーを受け取ります:

Warning #2928: the __GXX_EXPERIMENTAL_CXX0X__ macro is disabled when using GNU version 4.6 with the c++0x option

error: namespace "std" has no member "function"

警告は、まだバージョン 4.6 を使用していることを明確に示しています。Intel に正しいライブラリを使用させる方法を知っている人はいますか?

4

1 に答える 1

0

フラグ-v-Qを指定してgcc(またはg ++)でコンパイルすると、フラグと定義のリストが得られることがわかりました。gccが何をするのかを理解するのに役立つかもしれないので、icpcで同じ-D/-Uを使用できるかもしれません。また、g++-Eはコンパイルせずに前処理します。そこから有用なパス情報を取得できます。

于 2012-04-17T00:38:58.550 に答える