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

IPO compilation problem

yipikai_377
Beginner
526 Views

Hello all,

Here is my problem:

ipo: warning #11024: IPO link: can not find /usr/local/lib//usr/lib64/gcc/x86_64-suse-linux/4.2.1/32/crtbegin.o

during the linking process. I looked into my directory and it

appeared that /usr/lib64/gcc/x86_64-suse-linux/4.2.1/32/crtbegin.o exists

is there any means to enforce the linker to search in the right path?

Many thanks

Cheers

Antoine CARRE

0 Kudos
5 Replies
Ron_Green
Moderator
526 Views
It is odd that there is no colon separating the 2 paths /usr/local/lib and /usr/lib64/gcc. What does your LD_LIBRARY_PATH show? Are these separated with ":"?

0 Kudos
yipikai_377
Beginner
526 Views

Hello,

I have the following content in DP_LIBRARY_PATH:

echo $DP_LIBRARY_PATH
/usr/lib64/gcc/x86_64-suse-linux/4.4/32

and still the error due to the '//' when compiling:

ipo: warning #11024: IPO link: can not find /usr/local/lib//usr/lib64/gcc/x86_64-suse-linux/4.2.1/32/crtbegin.o
ipo: warning #11024: IPO link: can not find /usr/local/lib//usr/lib64/gcc/x86_64-suse-linux/4.2.1/32/crtend.o

Fortunatly I didn't yet manage to find the place where the linker finds these paths...

Cheers

0 Kudos
TimP
Honored Contributor III
526 Views

Do you mean that you have removed a g++ 4.2.1 installation which was active when you installed ifort? My preference is to leave that version in place, and install any newer version of gcc in a different path, such as /usr/local/gcc44, keeping the 4.2.1 available for ifort. You must have a working version of g++ on PATH when running ifort, as ifort uses 'g++ -print-search-dirs' to locate the files which it expects g++ to supply. I haven't had difficulty running ifort when g++ 4.4 is active, but g++ 4.2.1 is the latest version which works well with icpc.

If you link dynamically, LD_LIBRARY_PATH must include the library supplied by the g++ which was active when ifort was run. I don't know that DP_LIBRARY_PATH has any relevance to your original question.

0 Kudos
yipikai_377
Beginner
526 Views

Many thanks for your help..... I finally found the answer, the intel compiler was using

the "/usr/bin/g++ -print-search-dirs" command to find the proper library. However

/usr/bin/g++ was a link pointing to g++-4.2 and not to g++-4-4 and the libraries

corresponding to the g++-4.2 version where not the one I was looking for.

I changed the g++ and gcc links to the most recent version of the compilers and now it works.

However I am still sceptical as the double "//" are still used when searching for the proper library.

Cheers

Antoine

0 Kudos
TimP
Honored Contributor III
526 Views
Quoting - yipikai_377

Many thanks for your help..... I finally found the answer, the intel compiler was using

the "/usr/bin/g++ -print-search-dirs" command to find the proper library. However

/usr/bin/g++ was a link pointing to g++-4.2 and not to g++-4-4 and the libraries

corresponding to the g++-4.2 version where not the one I was looking for.

I changed the g++ and gcc links to the most recent version of the compilers and now it works.

However I am still sceptical as the double "//" are still used when searching for the proper library.

Cheers

Antoine

// is equivalent to / Not clean, but we all have to accept it.

0 Kudos
Reply