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

Installation of fortran libraries

Lendormy__Simon
Beginner
1,602 Views

Good morning,

this is a semi-duplicate of a question i asked on StackOverflow, Initially, the question was different but Steve Lionel explained the origin of the problem, which i did not find how to resolve yet.

I have to link Intel's fortran redistributables for IA32 parallel studioXE 2017 with a SDK in order to be able to use it.

i went to:  this page and i selected Intel® Fortran Compiler 2017 for Windows* update 9. and proceded to this installation of the .msi file i got.

My problem is that i can not find were the libraries were installed. I searched where the install instructions were saying i could  find them (Common Files/Intel/Shared Libraries/redist/ia32_win/mpirt) but i just found a bunch of executables and .dlls that are seem not related to what i need. I also found some .so files inside :Shared Libraries/compiler/lib/intel64win_mic.

I dont understand where are the .lib files i am supposed to link against...

 

I am sorry if some of my questions might sound like i am a newbie, but it's because i am. I dont have much experience in compiling C/C++, i am more of a java/python developper.

0 Kudos
9 Replies
Lendormy__Simon
Beginner
1,602 Views

By the way, by reading a little more on Intel's website, it appears that whatever the installer installed, it did it inside: Program Files(x86)/common files/intel instead of Program Files(x86)/IntelSWTools/... Also, the visual studio project that i was handed is preconfigured and it tries to look inside IntelSWTools/compiles_and_libraries_2017.1.143/windows/compiler/lib/ia32_win Which makes me belive someting went wrong with the installation, but i dont get what or why.

0 Kudos
Steve_Lionel
Honored Contributor III
1,602 Views

The redistributables installer is primarily meant for the DLLs. The path it uses matches that of the Intel development tool installs. That it also includes static libraries is a bit of an aberration, but there’s no other good place to install them. The VS project you have assumes a specific version of the development product is installed, which is obviously not going to be typical.

0 Kudos
Lendormy__Simon
Beginner
1,602 Views

But there are absolutely no .lib files in this install, did i forget to install something else?

the folder organization inside common files/Intel/Shared_libraries/redist/ia32_win is as such:

|-compiler-|

(contains the dlls like "libifcoremd.dll") and some subfolders containing from 2 to 4 .dll like "ifcore_msg.dll"

|-mpirt-|

(contains some executables like "wmpiconfig.exe" or hydra_service.exe")

 

and that is all, i did not see any .lib file (windows search did not find any either on the whole computer)

however with the wrong version of the fortran redistributables (11.1), the installer created a folder with a lot of .lib files inside (including libifcore.lib)

0 Kudos
Steve_Lionel
Honored Contributor III
1,602 Views

As I noted above, the inclusion of .lib files was strange, as redistributable packages don't tend to do that. I confirmed that the 2019 redist installer doesn't provide .lib files. Redist packages are meant to supply DLLs for executables.

It seems that the .lib files were dropped from the redist packages longer ago than I thought - I went back to the 2013 release and they're not there.

What you can do instead is generate a .lib from the 2019 .dll. See https://stackoverflow.com/questions/9946322/how-to-generate-an-import-library-lib-file-from-a-dll#9946390 for instructions. You'll want to make sure your C code also links to DLL libraries.

0 Kudos
Lendormy__Simon
Beginner
1,602 Views

Thak you so much.

I will try that ASAP. you really saved me a lot of time :)

0 Kudos
Steve_Lionel
Honored Contributor III
1,602 Views

You will still need to have the newer redist package installed.

0 Kudos
Lendormy__Simon
Beginner
1,602 Views

So if i understand correctly what you mean, i should download & install the Parallel Studio XE 2019 fortran redistributables and then try to convert the .dlls into .libs?

0 Kudos
Steve_Lionel
Honored Contributor III
1,602 Views

Yes, though technically what you're doing is creating an "import library". Even though it is a .lib, it isn't the same as a static library. You link your program against the import library and this establishes a connection to the corresponding DLL. You may need to do this only for libifcoremd.dll, so don't spend time doing this with every DLL in the package.

0 Kudos
Lendormy__Simon
Beginner
1,602 Views

Thank you very much for your help. Unfortunately, we have decided to abandon the use of that SDK (at least on windows) as it is likely to cause us a lot of problems in the future, it has been 2 weeks i tried to compile that thing and it looks like the people why created it make a mistake when they upgraded their developing tools. It really seems like a part of the SDK needs the more recent 2017 fortran redistributables while the other is still looking for 11.1. (the linker is always looking for ifcore.lib which does not even exist anymore). i have no clue why it is looking for it and i could not find it in the project options.

Thank you again for your help, i might as for a little more in the future (but i hope i wont have to :)

 

0 Kudos
Reply