- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have following compiling error using mkl 2017 update 2 on windows (It only happens on windows; it's ok on linux)
.error: identifier "VDEXP" is undefined
VDEXP(&size, &x[0], &expx[0]);
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
How do you build the program?
Would you like to use https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor to check whether it solves your problem or not?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, I've used the linker advisor. By the way, we've been using mkl all along. This compiling error only occurs with 2017 update 2 on windows.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sam, that's strange : I see this API is declared into mkl_vml_functions.h as well as in 32 & 64 bit libraries. MKL 2017 u2, windows.
/* Exponential function: r = e^a */
..............
_MKL_API(void,VDEXP,(const MKL_INT *n, const double a[], double r[]))
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It could be our compiler issue. We recently upgraded our intel compiler.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
No, it is not compiler issue. I got the same compiling error using previous compiler.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
well, I use vdexp.c example from <mklroot>\example\vmlc.
compiler - icl, v 2017 or cl - version 18.00
the code is compiled and executed as expected. MKL v.2017 u2.
cl /w /MT /I"C:\APPS\Intel2017\compilers_and_libraries\windows\mkl\include" /Fevdexp.exe exe vdexp.c "C:\APPS\Intel2017\compilers_and_libraries\w
indows\mkl\lib\intel64\mkl_intel_lp64.lib" "C:\APPS\Intel2017\compilers_and_libraries\windows\mkl\lib\intel64\mkl_intel_thread.lib" "C:\APPS\Intel2017
\compilers_and_libraries\windows\mkl\lib\intel64\mkl_core.lib" "C:\APPS\Intel2017\compilers_and_libraries\windows\compiler\lib\intel64\libiomp5md.lib"
Microsoft (R) C/C++ Optimizing Compiler Version 18.00.21005.1 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
vdexp.c
Microsoft (R) Incremental Linker Version 12.00.21005.1
Copyright (C) Microsoft Corporation. All rights reserved.
/out:vdexp.exe
vdexp.obj
C:\APPS\Intel2017\compilers_and_libraries\windows\mkl\lib\intel64\mkl_intel_lp64.lib
C:\APPS\Intel2017\compilers_and_libraries\windows\mkl\lib\intel64\mkl_intel_thread.lib
C:\APPS\Intel2017\compilers_and_libraries\windows\mkl\lib\intel64\mkl_core.lib
C:\APPS\Intel2017\compilers_and_libraries\windows\compiler\lib\intel64\libiomp5md.lib
vdexp.exe
vdExp test/example program
Argument vdExp
===============================================================================
-17.00000000000000 4.13993771878517e-008
-13.11110000000000 2.02265409612790e-006
-9.22220000000000 9.88210420175957e-005
-5.33330000000000 4.82811092818012e-003
-1.44440000000000 2.35887566644579e-001
2.44440000000000 1.15236333441634e+001
6.33330000000000 5.63011469474181e+002
10.22220000000000 2.75071156199207e+004
14.11110000000000 1.34391828719643e+006
18.00000000000000 6.56599691373305e+007
Relative accuracy is 0.0000000000000000
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I still have this compiler error using intel 17.2 c/c++ compiler + mkl 2017.2. Any help is appreciated. Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Do you mean - ."error: identifier "VDEXP" is undefined"?
You may check if this symbol exist in libs (mkl_core.lib or mkl_rt.lib) you linked with this case and therefore the problem with the wrong linking line or etc
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It is a compiler error. I have no problem using intel 16.3 c/c++ + mkl 2017.2. It seems we miss some flag of intel 17.2 or naming convention for calling fortran may have been changed for intel 17.2.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I think that a compiler error message has been mistaken to be a linker error message in what has been said in this thread. The message "error: identifier "VDEXP" is undefined" is from the compiler, which is complaining that there is no prototype for the external function VDEXP. You should probably add #include <mkl_vml.h> in your C source file to take care of this.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The correct name to use in C is vdExp.
vdexp and VDEXP are intended to be used for FORTRAN. If you want to use them in C, please add underscore at the end (vdexp_ and VDEXP_) and pass all parameters as reference.
Thanks,
Jingwei
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page