- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am using MingW 8.1.0 g++ to compile a program and link MKL libraries. My platform is Windows 10 with INTEL MKL 2020.0
Using the linker advisor I use the following Makefile:
CXX=g++
CXXFLAGS=-O4 -march=native -fopenmp-simd -fopenmp -fopt-info-vec=report.rpt -lmkl_intel_lp64 -lmkl_core -lmkl_sequential -L/C/Program\ Files\ \(x86\)\/IntelSWTools/compilers_and_libraries_2020.4.311/windows/mkl/lib/intel64_win -lm -Wl,--no-as-needed -I/C/Program\ Files\ \(x86\)\/IntelSWTools/compilers_and_libraries_2020.4.311/windows/mkl/include -std=c++11
default : app.exe
worker.o : worker.cc
${CXX} -c ${CXXFLAGS} -o "$@" "$<"
app.exe : main.cc worker.o
${CXX} ${CXXFLAGS} -o "$@" "$<" worker.o
clean :
rm app.exe worker.o *.optrpt
And get the following result:
$ mingw32-make -B
g++ -c -O4 -march=skylake -fopenmp-simd -fopenmp -fopt-info-vec=report.rpt -lmkl
_intel_lp64 -lmkl_core -lmkl_sequential -L/C/Program\ Files\ \(x86\)\/IntelSWToo
ls/compilers_and_libraries_2020.4.311/windows/mkl/lib/intel64_win -lm -Wl,--no-a
s-needed -I/C/Program\ Files\ \(x86\)\/IntelSWTools/compilers_and_libraries_2020
.4.311/windows/mkl/include -std=c++11 -o "worker.o" "worker.cc"
g++ -O4 -march=skylake -fopenmp-simd -fopenmp -fopt-info-vec=report.rpt -lmkl_in
tel_lp64 -lmkl_core -lmkl_sequential -L/C/Program\ Files\ \(x86\)\/IntelSWTools/
compilers_and_libraries_2020.4.311/windows/mkl/lib/intel64_win -lm -Wl,--no-as-n
eeded -I/C/Program\ Files\ \(x86\)\/IntelSWTools/compilers_and_libraries_2020.4.
311/windows/mkl/include -std=c++11 -o "app.exe" "main.cc" worker.o
main.cc: In function 'int main(int, char**)':
main.cc:36:55: warning: integer overflow in expression of type 'long int' result
s in '0' [-Woverflow]
float *data = (float *) malloc((long)sizeof(float)*n*m);
~~~~~~~~~~~~~~~~~~~~~^~
C:\Users\RAULRA~1\AppData\Local\Temp\ccgFLrvQ.o:main.cc:(.text+0x6d): undefined
reference to `vsRngUniform'
C:\Users\RAULRA~1\AppData\Local\Temp\ccgFLrvQ.o:main.cc:(.text.startup+0x83): un
defined reference to `vslNewStream'
collect2.exe: error: ld returned 1 exit status
mingw32-make: *** [Makefile:12: app.exe] Error 1
What library am I missing? INTEL documentation states that both vdRngUniform and vslNewStream are MKL libraries.
Thank you for your help.
Cheers,
Raul Ramirez-Velarde
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
yes, vdRngUniform and vslNewStream are from MKL libraries and yes dynamically linking against these shared libs -lmkl_intel_lp64 -lmkl_core -lmkl_sequential is the correct way to link, but I am not sure how it could be linked under the MING g++ environment. You may try to check the build on any other Linus OS-based systems and apply the MKL Linkier Adviser or Dev Guide recommendations.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This issue has been resolved and we will no longer respond to this thread. If you require additional assistance from Intel, please start a new thread. Any further interaction in this thread will be considered community only.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page