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.
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.
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.
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:
(contains the dlls like "libifcoremd.dll") and some subfolders containing from 2 to 4 .dll like "ifcore_msg.dll"
(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)
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.
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?
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.
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 :)