Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
305 Views

error compiling mkl example :undefined reference to GetIntegerParameters

Jump to solution
~/Desktop $ gcc -o test cblas_zgbmvx.c -Wl,-rpath=/opt/intel/mkl/10.1.3.027/lib/32 -L/opt/intel/mkl/10.1.3.027/lib/32 -lmkl_gf -liomp5 -lmkl_intel -lmkl_intel_thread -lmkl_core -lpthread -lm
/tmp/ccETbui0.o: In function `main':
cblas_zgbmvx.c:(.text+0xc9): undefined reference to `GetIntegerParameters'
cblas_zgbmvx.c:(.text+0x103): undefined reference to `GetIntegerParameters'
cblas_zgbmvx.c:(.text+0x13d): undefined reference to `GetScalarsZ'
cblas_zgbmvx.c:(.text+0x177): undefined reference to `GetCblasCharParameters'
cblas_zgbmvx.c:(.text+0x322): undefined reference to `GetVectorZ'
cblas_zgbmvx.c:(.text+0x36e): undefined reference to `GetVectorZ'
cblas_zgbmvx.c:(.text+0x3f4): undefined reference to `GetBandArrayZ'
cblas_zgbmvx.c:(.text+0x492): undefined reference to `PrintParameters'
cblas_zgbmvx.c:(.text+0x4a6): undefined reference to `PrintParameters'
cblas_zgbmvx.c:(.text+0x4d8): undefined reference to `PrintVectorZ'
cblas_zgbmvx.c:(.text+0x50a): undefined reference to `PrintVectorZ'
cblas_zgbmvx.c:(.text+0x568): undefined reference to `PrintBandArrayZ'
cblas_zgbmvx.c:(.text+0x643): undefined reference to `PrintVectorZ'
collect2: ld returned 1 exit status

what should i do ?
thx
0 Kudos

Accepted Solutions
Highlighted
New Contributor I
304 Views
Yes one more source file need to be compiled - common_func.c.
The other way is to use the provided makefile in the directory examples/cblas to build and run the examples.
This command
>make so32 compiler=gnu function=cblas_zgbmv
will compile the required sources by gnu compiler, link the correct MKL libraries and run cblas_zgbmv example.
-Vladimir

View solution in original post

0 Kudos
6 Replies
Highlighted
Black Belt
304 Views
~/Desktop $ gcc -o test cblas_zgbmvx.c -Wl,-rpath=/opt/intel/mkl/10.1.3.027/lib/32 -L/opt/intel/mkl/10.1.3.027/lib/32 -lmkl_gf -liomp5 -lmkl_intel -lmkl_intel_thread -lmkl_core -lpthread -lm
/tmp/ccETbui0.o: In function `main':
cblas_zgbmvx.c:(.text+0xc9): undefined reference to `GetIntegerParameters'

I suppose libmkl_gf and libmkl_intel conflict with each other; just one of those two should be used. The link advisor on the right hand side of the forum page recommends only-lmkl_intel. Doesn't cblas also require its own library or common_func.c?
0 Kudos
Highlighted
304 Views
Quoting - tim18
I suppose libmkl_gf and libmkl_intel conflict with each other; just one of those two should be used. The link advisor on the right hand side of the forum page recommends only-lmkl_intel. Doesn't cblas also require its own library or common_func.c?

thx for the reply
i later found out that it might not be a linking error
those "functions" or "macros" that caused the problem are declared in mkl_example.h
but i dont think it's implemented anywhere since it's just examples, not part of the mkl library
0 Kudos
Highlighted
New Contributor I
305 Views
Yes one more source file need to be compiled - common_func.c.
The other way is to use the provided makefile in the directory examples/cblas to build and run the examples.
This command
>make so32 compiler=gnu function=cblas_zgbmv
will compile the required sources by gnu compiler, link the correct MKL libraries and run cblas_zgbmv example.
-Vladimir

View solution in original post

0 Kudos
Highlighted
304 Views
Yes one more source file need to be compiled - common_func.c.
The other way is to use the provided makefile in the directory examples/cblas to build and run the examples.
This command
>make so32 compiler=gnu function=cblas_zgbmv
will compile the required sources by gnu compiler, link the correct MKL libraries and run cblas_zgbmv example.
-Vladimir

thx man !
i've tried to use make but passed the wrong arguments: make lib32 function=common_func compiler=gnu
but now it works !
0 Kudos
Highlighted
Beginner
304 Views
OK I am getting this error: for the make file: Dgemm_mkl: gcc -c -o Dgemm.o cblas_dgemmx.c gcc -L -o Dgemm Dgemm.o I get: [sahar@kw2227 myMKLtests]$ make gcc -c -o Dgemm.o cblas_dgemmx.c gcc -o Dgemm Dgemm.o Dgemm.o: In function `main': cblas_dgemmx.c:(.text+0xb8): undefined reference to `GetIntegerParameters' cblas_dgemmx.c:(.text+0xed): undefined reference to `GetScalarsD' cblas_dgemmx.c:(.text+0x129): undefined reference to `GetCblasCharParameters' cblas_dgemmx.c:(.text+0x2cc): undefined reference to `GetArrayD' cblas_dgemmx.c:(.text+0x31f): undefined reference to `GetArrayD' cblas_dgemmx.c:(.text+0x36c): undefined reference to `GetArrayD' cblas_dgemmx.c:(.text+0x3f5): undefined reference to `PrintParameters' cblas_dgemmx.c:(.text+0x409): undefined reference to `PrintParameters' cblas_dgemmx.c:(.text+0x44b): undefined reference to `PrintArrayD' cblas_dgemmx.c:(.text+0x48d): undefined reference to `PrintArrayD' cblas_dgemmx.c:(.text+0x4c9): undefined reference to `PrintArrayD' cblas_dgemmx.c:(.text+0x527): undefined reference to `cblas_dgemm' cblas_dgemmx.c:(.text+0x575): undefined reference to `PrintArrayD' collect2: ld returned 1 exit status make: *** [Dgemm_mkl] Error 1 if it wasn't a linking problem then what is it??
0 Kudos
Highlighted
Moderator
304 Views
these references like 'GetIntegerParameters' and others are defined into common_func.c file.
0 Kudos