Mac OSX 10.6.6 および Xcode 3.2.6 を実行している 64 ビット Mac でIntel Math Kernel Library (MKL) を使用しようとしています。Mac の場合、インテル MKL は、完全なインテル Composer XE 2011 C++ コンパイラーをインストールすることによってのみ利用できます。私はそうしました、そして私はbashスクリプトを実行します
/Developer/opt/intel/composer_xe_2011_sp1.6.038/mkl/bin/intel64/mklvars_intel64.sh
/Developer/opt/intel/composer_xe_2011_sp1.6.038/link_install.sh
Composer XE および MKL の環境変数を設定します。コンパイラを使用して、Xcode で簡単なテスト プロジェクトをビルドできます。
ただし、ここで説明されているように Xcode でリンクできないため、MKL を使用できません。そのハイパーリンクで説明されている MKL フレームワーク フォルダーがありません。
/Library/Frameworks/Intel_MKL.framework/
(具体的には、私のシステムのどこにも Intel_MKL.framework という名前のフォルダーはありません。) このフォルダーが存在することを確認することは、Intel のいくつかの MKL リファレンス マニュアルに記載されていますが、存在しない場合の対処方法はどこにも記載されていません。存在しません!MKL が正しくインストールされていれば存在すると思われますが、私は (「Composer XE のインストールが成功しました」)、Intel_MKL.framework はありません。
それが重要な場合、私が得るエラーは
"_dsyevx", referenced from:
jEigenvalues(TNT::Array2D<double>&, TNT::Array1D<double>&)in main.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
私が理解していることは、適切にリンクされていないことと一致しています。
Intel フォーラムを含め、助けを得るためにかなりの時間と労力を費やしましたが、役に立ちませんでした。これは単純な問題だと思います (私は単なる素人です)。
助けてくれてありがとう。
編集:
Paul の提案で、インストーラーを再実行しましたが、変更はありません。唯一の mkl.h ファイルは次の場所にあります。
/Developer/opt/intel/composer_xe_2011_sp1.6.038/mkl/include
Xcode以外のインストールディレクトリにある予想される同一のコピーと同様に
/opt/intel/composer_xe_2011_sp1.6.038/mkl/include
これがXcodeの「ヘッダー検索パス」の下にリストすることになっているかどうかはわかりませんが、ずっと前にリストしました。私も挙げました
/Developer/opt/intel/composer_xe_2011_sp1.6.038/mkl/lib
「ライブラリ検索パス」として、この2011年のガイドを読むための最善の試みに基づいて、これらのリンカーフラグを追加しました:
-libmkl_intel_lp64.a
-libmkl_core.a
-libmkl_sequential.a
-libmkl_intel_thread.a
何も変更されておらず、同じエラーが発生します。
ld returned 1 exit status
彼は動的リンクと静的リンクに問題があるのでしょうか? スタティック リンク (.dylib ではなく .a エンディング) を選択したのは、単純に思えたからですが、よくわかりません。動的に変更しても何も起こりませんでした。
ここでフィードバックを得る方法はありますか?このエラーに基づいて何を変更すればよいかわかりません。
EDIT2:
Xcode の「プロジェクト情報」(おそらく 100 のオプションの 1 つ) に「Intel Math Kernel Library を使用する」というオプションがありました。(これについてはどこで確認すればよいでしょうか?) これで構築が進んでいますが、実行可能ファイルを実行すると、次のようになります。
exit;
dyld: Library not loaded: libmkl_intel_lp64.dylib
Referenced from: /Users/.../nameofexecutable
Reason: image not found
Trace/BPT trap
logout
ライブラリ検索ディレクトリが正しいことを再確認しました。末尾が .a のスタティック ライブラリも切り替えてみましたが、エラーはまったく同じでした。(まだ .dylib エンディングがありました。)これは、私が動的に行き詰まっているということですか? なんで?変数も定義しました
DYLD_LIBRARY_PATH
することが
/Developer/opt/intel/composer_xe_2011_sp1.6.038/compiler/lib: /Developer/opt/intel/composer_xe_2011_sp1.6.038/mkl/lib
ここの古い指示で示唆されているように、何も変わっていません。
うわー、これは恐ろしく難しい。