Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29267 Discussions

Alternative for libifcoremd.dll & libmmd.dll in IVF 10

ankitsinghai
Beginner
1,185 Views
Hi All,

I am using IVF compiler 10 for building the application, and getting the following error message
": error LNK2019: unresolved external symbol ___intel_f2int referenced in function _sonles" while building application.

However, if I build this application with IVF compiler 9, it completes successfully.

Any ideas what might be causing this..? and what is the solution...?

Note:- At all time I have only 1 version of IVF Compiler installed.

Thanks in Advance
Ankit Singhai




0 Kudos
8 Replies
TimP
Honored Contributor III
1,185 Views
The usual explanation, if you will read previous discussions of this problem, is that you continued to use old libraries after installing the new compiler. You may have set the old LD_LIBRARY_PATH permanently in your login scripts, or the old link path in your Makefile.
0 Kudos
Steven_L_Intel1
Employee
1,185 Views
On Windows, the environment variable is LIB - if you are building from VS, then the list of folders is under Tools > Options > Intel Fortran > Directories.

Note that installing a new version of IVF does not remove the old one (as of 10.0).
0 Kudos
ankitsinghai
Beginner
1,185 Views

Thanks for your response.

But I am using IVF 10 libraries only.

In my application I am using libifcoremd.dll/lib and libmmd.dll/lib and we copy these dlls/libs to 1 lib folder

and all the references points to this folder only.

One thing I notice is size of libmmd.lib is 392 kb in IVF9 but it is only 115 kb in IVF 10

Still I am not able to build my application.

Regards,

Ankit

0 Kudos
Steven_L_Intel1
Employee
1,185 Views
Please show the value of the LIB environment variable in the command environment where you build, and the command you use to link the application. You may also find it helpful to add, at the end of the ifort command used to link:

/link /verbose

This will tell the linker to list all the libraries it is looking at and this may give you a clue as to why you are using old libraries.

The size difference in libmmd.lib is correct.
0 Kudos
ankitsinghai
Beginner
1,185 Views

From my cmd prompt

LIB=C:Program FilesIntelCompilerFortran10.1.021Ia32Lib;C:Program FilesMicrosoft Visual Studio .NET 2003VC7ATLMFCLIB;C:Program FilesMicrosoft Visual Studio .NET 2003VC7LIB;C:Program FilesMicrosoft Visual Studio .NET 2003VC7PlatformSDKlibprerelease;C:Program FilesMicrosoft Visual Studio .NET 2003VC7PlatformSDKlib;C:Program FilesMicrosoft Visual Studio .NET 2003SDKv1.1lib;C:Program FilesIntelMKL10.0.2.019ia32lib;C:Progra~1IntelCompilerFortran10.1.021IA32Lib;D:ReleaseV7500WLSSCPOvendormaewindowsforecastlibdebug;D:ReleaseV7500WLSSCPOvendormaewindowsfortranlib;D:ReleaseV7500WLSMAEVENDORROGUEWAVEwindowslib;LIBRARY_PATH=C:Program FilesIntelMKL10.0.2.019ia32lib

I hope it gives some clue to you

0 Kudos
Steven_L_Intel1
Employee
1,185 Views
Are you building from the command prompt? The linker "verbose" output would be, as I suggested earlier, a better clue. If you are building from the command line, add to the end of the "ifort" line that does the link,

/link /verbose

You probably want to add to the end of that:

> out.txt

to capture the output to a file which you can then attach to a reply here (use the Options tab when posting).
0 Kudos
ankitsinghai
Beginner
1,185 Views

I am building from command prompt, I am able to build application in debug mode.

Through some more search in this forum , found that should try using libirc.lib &/or libircmt.lib along with other libs.

After using the above I am able to build the appliaction in release mode, but I am not clear why this libs are required in release mode and not in debug mode.

Thanks for your reply

0 Kudos
Steven_L_Intel1
Employee
1,185 Views
You should never have to name those libraries directly - the compiler will add the proper references. When you build an optimized application, the compiler can use special routines in libraries such as libirc.lib that may not be used for non-optimized compiles.

Please show the command lines you are using to link. You should use "ifort" to link.
0 Kudos
Reply