1

Linuxのコマンドラインは次のとおりです。

icc test.c -o test.o -L/opt/intel/current/mkl/intel64 -I/opt/intel/current/mkl/include -lmkl_intel_ilp64 -lmkl_core -lmkl_scalapack_ilp64

このコマンドを実行した後: I got a long line of undefined reference errors . 私はEclipseでも試しましたが、そこでもリンクの問題を解決できませんでした。誰かが次のような小さなコードを実行するのを手伝ってくれたらうれしいです:

//test.c- a sample code from user guide
#include "mkl.h"
#define N 5
void main()
{
int n, inca = 1, incb = 1, i;
typedef struct{ double re; double im; } complex16;
complex16 a[N], b[N], c;
void zdotc();
n = N;
for( i = 0; i < n; i++ ){
a[i].re = (double)i; a[i].im = (double)i * 2.0;
b[i].re = (double)(n - i); b[i].im = (double)i * 2.0;
}
zdotc( &c, &n, a, &inca, b, &incb );
printf( "The complex dot product is: ( %6.2f, %6.2f) ", c.re, c.im );
} 

私のサーバー

> MKLROOT: /opt/intel/current/mkl/
>           library: $MKLROOT/lib/intel64/
>           include:$MKLROOT/include

ICC 64bitを搭載。

前もって感謝します。

4

1 に答える 1

1

インテル® MKL の正しいリンクラインを取得する最善の方法は、MKL リンクライン・アドバイザーを使用することです。適切な LD_LIBRARY_PATH コンパイラ オプションとリンクするライブラリ セットを使用しても、正しく表示されません。する必要があります

-DMKL_ILP64 -I$(MKLROOT)/include -L$(MKLROOT)/lib/intel64 -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -openmp -lpthread -lm
于 2012-08-02T12:02:29.943 に答える