[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:41573] intel compiler 8.1



楠野です。

インテルコンパイラが

icc: error: could not find directory in which g++ resides

とエラーを吐いて動いてくれなかったのですが、どうにか動きそうなので、
報告します。

===============================
1. alien で .rpm を .deb に変換
2. dpkg -i *.deb
3. /opt/intel_cc_80/bin 以下の icc,iccvars.{sh,csh}の中の
   <INSTALLDIR> を /opt/intel_cc_80 に変換
4. .bashrc などに iccvars.sh を読み込むように設定。
===============================

ここまでの手順で以前のバージョンは使えていたのですが、
8.1 だと、上記のエラーが出て、困ってました。

LANG=C icc test.cpp 

で、起動してみると上記のエラーが回避されますが、さらに次のエラーが出ます。

test.cpp(1): catastrophic error: could not open source file "iostream"
  #include <iostream>
                     ^

compilation aborted for test.cpp (code 4)

デフォルトで gnu のライブラリを使うようになったみたいで

LANG=C icc test.cpp -cxxlib-icc

としてやると、インテルが配布しているライブラリを使うことになりますが、
うまくコンパイル出来ます。-I,-L などのオプションでどうにかなるみたい
ですが、、面倒なので、、

以上を alies にするなり、Makefile に書き込むなりで終了。

または、強制的に LANG=C にして -cxxlib-icc を付けるなら

===============================
5./opt/inte_cc_80/bin/icc の exec 行に LANG=C を前置してやる。

if [ $# != 0 ]
then
 LANG=C exec -a "/opt/intel_cc_80/bin/icc" /opt/intel_cc_80/bin/iccbin "$@";
else
 LANG=C exec -a "/opt/intel_cc_80/bin/icc" /opt/intel_cc_80/bin/iccbin;
fi

6. /opt/intel_cc_80/icc.cfg に -cxxlib-icc を追加
===============================

以上の手続きで icc を使うことができます。
既知の話題でしたら無視してやってください。。それでは。