Intel バージョン 12.1.3 を使用していることを除いて、この投稿で説明されているのと同じ問題があります。(g++
のヘッダーは、icpc 使用時に定義されていないもので<functional>
保護されています。)#ifdef __GXX_EXPERIMENTAL_CXX0X__
を使用する代わりにboost::functional
、gcc4.7 をインストールしてその std ライブラリを使用したかったのです。
Ubuntu 11.10では持っていますが、パッケージからgcc4.6.1
もインストールしました。gcc4.7
gcc-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 に正しいライブラリを使用させる方法を知っている人はいますか?