Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!

error loading plugin: libimf.so

Braun__Jay
Beginner
3,319 Views

I have an application that I last built and executed using Intel Fortran 16 on CentOs 6 a few years ago.  I am now trying to build with Intel Fortran 20, update 1, on CentOS 7.

When linking an object file with an ar library, both of which I rebuilt with ifort 20, I get the following message:

ld: /path_to/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/../../lib/LLVMgold.so: error loading plugin: libimf.so: cannot open shared object file: No such file or directory

Neither .so file is familiar to me.  Could someone help me get started debugging this issue?

Thanks.

 

0 Kudos
6 Replies
Braun__Jay
Beginner
3,319 Views

Here is some more information.  I have one instance of LLVMgold.so

./intel/compilers_and_libraries_2020.1.217/linux/lib/LLVMgold.so

There are several instances of libimf.so

./intel/itac/2020.1.024/intel64/bin/rtlib/libimf.so
./intel/compilers_and_libraries_2020.1.217/linux/compiler/lib/ia32_lin/libimf.so
./intel/compilers_and_libraries_2020.1.217/linux/compiler/lib/intel64_lin/libimf.so
./intel/intelpython3/pkgs/icc_rt-2020.1-intel_217/lib/libimf.so
./intel/intelpython3/lib/libimf.so

I investigated whether this had anything to do with LD_LIBRARY_PATH.  It was not set when I first tried the link.  I then tried setting it.

> echo $LD_LIBRARY_PATH
~/intel/compilers_and_libraries_2020.1.217/linux/compiler/lib/intel64_lin/libimf.so

Same result:

ld: /path_to/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/../../lib/LLVMgold.so: error loading plugin: libimf.so: cannot open shared object file: No such file or directory

 

IanH
Black Belt
3,319 Views

I'm a bit confused about the prefix for all those paths - you have "/path_to", the current directory and perhaps the shell metachar for the current users home directory. 

Linux is not my forte, and I don't have an ifort compiler installation on linux to check, so the value of the following is all a bit questionable, but LD_LIBRARY_PATH should be a list of directories, not a filename, and that list of directories should not have a literal "~" in it (that character should have been expanded when the environment variable was defined). 

Are you linking in a shell that has been set up with ifortvars.sh?

Braun__Jay
Beginner
3,319 Views

Thank you for your assistance.

/path_to is just a way to refer to my home directory; I was once told that it is not a good idea (for security reasons) to include that in posts.

I did try to set LD_LIBRARY_PATH with the path itself; sorry that my post contained an earlier incorrect usage.  Using the path did not eliminate the error, however.

Online, I did see a comment about setting up with ifortvars.sh but did not know what needs to be done.  I never did that when I was using ifort versions 14 through 18 in past years.  Is it simply a matter of executing the shell script?  Should that be done from my .bashrc?  Are there environment variables that I can check to ensure that the set-up was successful?  

Best regards.

Steve_Lionel
Black Belt Retired Employee
3,319 Views

It's always been required to "source" ifortvars.sh. Typically this is done as:

source /opt/intel/bin ifortvars.sh

If you didn't do this, where did the compiler find its path to run?

Braun__Jay
Beginner
3,319 Views

Thank you, Steve.  I don't recall ever doing this, but I could be mistaken.

Very good to say hello again.

Braun__Jay
Beginner
3,319 Views

. . . and running ifortvars.sh with the correct arguments does the trick.  Thanks!

Reply