Error installing intel compiler 10.0 in Ubuntu 10.04

Error installing intel compiler 10.0 in Ubuntu 10.04

Hi all,I've downloaded the intel compiler 10.0 for intel64.However, I am not able to install it in my Ubuntu 10.04.Following the instruction of http://software.intel.com/en-us/articles/using-intel-compilers-for-linux-with-ubuntu/I have installed:build-essentialgcc-multilibrpmopenjdk-6-jre-headlesslibstdc++5But I still get the message:architecture = x86_64kernel = 2.6.32-37-genericglibc = unknownoperating system = unknownIf I ignore this, I get the following:The installation program was not able to detect the IA-32 version of the following libraries installed : libstdc++libgccglibcAgain I ignore the message, and finally the installation is interrupted by:--------------------------------------------------------------------------------Intel Fortran Compiler for applications running on Intel 64, Version 10.0 (10.0.026)Installing...Installation failed.--------------------------------------------------------------------------------RPM std error output is as follows:--------------------------------------------------------------------rpm: please use alien to install rpm packages on Debian, if you are really sure use --force-debian switch. See README.Debian for more details.--------------------------------------------------------------------This failure occured using the following RPM options: -U --replacefiles --forceNo idea... I would really appreciate any help.First problem to download the product due to browser issues and now this.. it is taking ages to install it!Thanks!Carlos

18 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

That version of the compiler is old relative to your OS. Current 12.1 should be much easier, not requiring any optional stuff from Ubuntu beyond the standard g++.
You would require the complete g++ development system installation for both 32- and 64-bit mode, if you want to install the 32-bit ifort. You shouldn't need the entire 32-bit g++ for the 64-bit ifort on the x86_64 OS.
As the instructions you refer to indicate, you also need both the 32- and 64-bit libstdc++-33, even if you are installing only the 64-bit ifort. These libstdc++-5 requirements are gone since ifort 12.0.

Thanks for your reply.You are right, I have installed indeed the newest intel compiler without further problems.However, I need to install the 10.0 release since the third party software that I have to install specifically requests that version. I tried with the one that is currently installed in the computer and I got thousand of errors...I am quite a newbie, thus I would really appreciate if you could give me clear instructions of what I should install to make possible to install intel fortran 64-bit version 10.0 in my linux distribution.Thanks again for your help.

It's unlikely that compile errors would be cured by using an old compiler which wasn't designed for your OS. For example, if you chose wrong between free and fixed format source, you would have the same problem with either version.

OK, then it would be really hepful if you could give me some help to solve the problems that I get trying to compile the source software with the intel compiler 11.1.

I need to install (among other things) the netcdf libraries. I checked the following documentationhttp://software.intel.com/en-us/articles/performance-tools-for-software-developers-building-netcdf-with-the-intel-compilers/That is:(in the .bashrc)source /opt/intel/Compiler/11.1/073/bin/ifortvars.sh intel64source /opt/intel/Compiler/11.1/073/bin/iccvars.sh intel64(in the shell)

export CC=icc

export CXX=icpc

export CFLAGS='-O3 -xT -ip -no-prec-div -static'

export CXXFLAGS='-O3 -xT -ip -no-prec-div -static'

export F77=ifort

export FC=ifort

export F90=ifort

export FFLAGS='-O3 -xT -ip -no-prec-div -static'

export CPP='icc -E'

export CXXCPP='icpc -E'

Then configure and make, and I get this error (nochanges, if I change-xT by -xsse3):

make[2]: Entering directory `/home/dogarcar/Downloads/netcdf-3.6.2/fortran'

make all-am

make[3]: Entering directory `/home/dogarcar/Downloads/netcdf-3.6.2/fortran'

depbase=`echo fort-attio.lo | sed 's|[^/]*$|.deps/&|;s|.lo$||'`;

if /bin/bash ../libtool --tag=CC --mode=compile icc -DHAVE_CONFIG_H -I. -I. -I.. -I. -I../libsrc -O3 -xT -ip -no-prec-div -static -MT fort-attio.lo -MD -MP -MF "$depbase.Tpo" -c -o fort-attio.lo fort-attio.c;

then mv -f "$depbase.Tpo" "$depbase.Plo"; else rm -f "$depbase.Tpo"; exit 1; fi

libtool: compile: icc -DHAVE_CONFIG_H -I. -I. -I.. -I. -I../libsrc -O3 -xT -ip -no-prec-div -MT fort-attio.lo -MD -MP -MF .deps/fort-attio.Tpo -c fort-attio.c -o fort-attio.o

../libtool: line 795: icc: command not found

make[3]: *** [fort-attio.lo] Error 1

make[3]: Leaving directory `/home/dogarcar/Downloads/netcdf-3.6.2/fortran'

make[2]: *** [all] Error 2

make[2]: Leaving directory `/home/dogarcar/Downloads/netcdf-3.6.2/fortran'

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory `/home/dogarcar/Downloads/netcdf-3.6.2'

make: *** [all] Error 2

However. icc is in the $PATH$ icc
icc: command line error: no files specified; for help type "icc -help"Could you please help me?Thanks!

That's already solved. It was a problem of variables with sudo make, icc was not defined for superuser.But, if I compile now what I get is:Making all in cxxmake[2]: Entering directory `/home/dogarcar/Downloads/netcdf-3.6.2/cxx'depbase=`echo ncvalues.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`; \ if /bin/bash ../libtool --tag=CXX --mode=compile icpc -DHAVE_CONFIG_H -I. -I. -I.. -I../fortran -DDEBUG -I../libsrc -O3 -xT -ip -no-prec-div -static -MT ncvalues.lo -MD -MP -MF "$depbase.Tpo" -c -o ncvalues.lo ncvalues.cpp; \ then mv -f "$depbase.Tpo" "$depbase.Plo"; else rm -f "$depbase.Tpo"; exit 1; filibtool: compile: icpc -DHAVE_CONFIG_H -I. -I. -I.. -I../fortran -DDEBUG -I../libsrc -O3 -xT -ip -no-prec-div -MT ncvalues.lo -MD -MP -MF .deps/ncvalues.Tpo -c ncvalues.cpp -o ncvalues.oncvalues.cpp(238): error: identifier "strncpy" is undefined strncpy(s, (const char*)the_values + n, (int)the_number); ^ncvalues.cpp(246): error: identifier "strncpy" is undefined strncpy(s, (const char*)the_values + n, (int)the_number); ^compilation aborted for ncvalues.cpp (code 2)make[2]: *** [ncvalues.lo] Error 1make[2]: Leaving directory `/home/dogarcar/Downloads/netcdf-3.6.2/cxx'make[1]: *** [all-recursive] Error 1make[1]: Leaving directory `/home/dogarcar/Downloads/netcdf-3.6.2'make: *** [all] Error 2Making all in cxxmake[2]: Entering directory `/home/dogarcar/Downloads/netcdf-3.6.2/cxx'depbase=`echo ncvalues.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`; \ if /bin/bash ../libtool --tag=CXX --mode=compile icpc -DHAVE_CONFIG_H -I. -I. -I.. -I../fortran -DDEBUG -I../libsrc -O3 -xT -ip -no-prec-div -static -MT ncvalues.lo -MD -MP -MF "$depbase.Tpo" -c -o ncvalues.lo ncvalues.cpp; \ then mv -f "$depbase.Tpo" "$depbase.Plo"; else rm -f "$depbase.Tpo"; exit 1; filibtool: compile: icpc -DHAVE_CONFIG_H -I. -I. -I.. -I../fortran -DDEBUG -I../libsrc -O3 -xT -ip -no-prec-div -MT ncvalues.lo -MD -MP -MF .deps/ncvalues.Tpo -c ncvalues.cpp -o ncvalues.oncvalues.cpp(238): error: identifier "strncpy" is undefined strncpy(s, (const char*)the_values + n, (int)the_number); ^
ncvalues.cpp(246): error: identifier "strncpy" is undefined strncpy(s, (const char*)the_values + n, (int)the_number); ^
compilation aborted for ncvalues.cpp (code 2)make[2]: *** [ncvalues.lo] Error 1make[2]: Leaving directory `/home/dogarcar/Downloads/netcdf-3.6.2/cxx'make[1]: *** [all-recursive] Error 1make[1]: Leaving directory `/home/dogarcar/Downloads/netcdf-3.6.2'make: *** [all] Error 2Reading the comments, it seems that there is no solution for that.That's why I wanted to install intel compiler 10.0, because for this compiler seems to work fine.Thanks for your help.

I would think the evident solution for a missing #include or would be to add the mandatory header (or upgrade to a more recent version of the application). Dropping back to an older compiler which neglects to check but hasn't been tested with the library you have installed is a more risky path.
I guess it's somewhat embarrassing that the posted 4 year old Intel document on NetCDF advises use of a compiler version which is no longer supported and an old NetCDF version.

I have added a comment to the page Performance Tools for Software Developers - Building NetCDF* with the Intel Compilers.

The comment displays the environment needed to build the current version of NetCDF (netcdf-4.1.3) with the current Intel compilers (Version 12.1).

I have verified the procedure described in the comment on Suse-12.1-X64, building 32-bit targets for the three packages (SZIP, HDF5, NetCDF).

Thank you so much for your help and for updating the post.I have stricktly followed your instructions:SZIP and HDF5 were successfully installed andEnvironmental variables were exported accordingly.However, I cannot install yet the netcdf libraries. Indeed the failure comes in the configure.In particular, I receive the following error:checking for library containing H5Fflush... noconfigure: error: Can't find or link to the hdf5 library. Use --disable-netcdf-4, or see config.log for errors.Then I check the log file and I find:...configure:26911: gcc -o conftest -g -O2 conftest.c -lhdf5dll -lm -lz >&5/usr/bin/ld: cannot find -lhdf5dllcollect2: ld returned 1 exit statusconfigure:26911: $? = 1......configure:26911: gcc -o conftest -g -O2 conftest.c -lhdf5 -lm -lz >&5/usr/bin/ld: cannot find -lhdf5collect2: ld returned 1 exit statusconfigure:26911: gcc -o conftest -g -O2 conftest.c -lhdf5 -lm -lz >&5/usr/bin/ld: cannot find -lhdf5collect2: ld returned 1 exit status...But the HDF path is correctly included "export HDF5D=/opt/hdf5"and the hdf5 library is correctly installed....Any idea?I am sorry for all these questions, but I am not familiar with this compiling issues.Thanks again.

If you are building for intel64/amd64, you probably need to change two lines of my "comment" as follows. Change

export LDFLAGS='-L$HDF5D/lib -L$SZIPD/lib -lhdf5 -lsz'

to

export LDFLAGS='-L$HDF5D/lib64 -L$SZIPD/lib64 -lhdf5 -lsz'

(before making this change, check where the HDF library was installed)

Similarly, make changes to the line that exports LD_LIBRARY_PATH (i.e., change "lib" to "lib64").

The configure script compiles several short programs to find which libraries are available; it is normal for many of these to fail; e.g.,

/usr/bin/ld: cannot find -lhdf5dll

is probably not a problem since this check does not apply to Linux.

I get the same error and the same log file.
configure:26911: gcc -o conftest -g -O2 conftest.c -lhdf5 -lm -lz >&5/usr/bin/ld: cannot find -lhdf5configure:26911: gcc -o conftest -g -O2 conftest.c -lhdf5 -lm -lz >&5/usr/bin/ld: cannot find -lhdf5
I expected that since the path for the hdf5 libraries is in fact:/opt/hdf5-1.8.8/libas you said in your first post.Setting HDF5D to/opt/hdf5-1.8.8/ something seems to be wrong.What I realized is that the library hdf5 is not in the lib folder. The following files are in there:libhdf5.a libhdf5_hl.so libhdf5.la libhdf5.so.7libhdf5_hl.a libhdf5_hl.so.7 libhdf5.settings libhdf5.so.7.0.2libhdf5_hl.la libhdf5_hl.so.7.0.2 libhdf5.soand why the configure sets gcc, shouldn't be ifort or icc?fustration increasing to infinity... and beyond.

Best Reply

If you wish to compile with icc and ifort rather than gcc and gfortran, the environmental variables for CC, FC, etc., need to be set before running any of the configure scripts. That gcc was selected instead indicates that the environment was not correctly set up.

I understand your frustration. It is a reliable outcome of using GNU configure.

Basically, this is the procedure that I would follow: when configure fails, it displays a message about what step failed. Look up the corresponding lines in config.log, and find what part of the environment needs to be changes in order to remove that error.

Unfortunately, this procedure needs to be repeated for each build error.

--------------------------------------------------------------------------------------------------

If you are willing to accept a binary attachment (check for viruses, etc. before using!), you can use the attached tarred and gzipped file. It contains the headers, and libraries for ia32 and intel64. The compiler options used : -O3 -ip -no-prec-div, with one exception: for building HDF for intel64 I used '-O2 -no-prec-div' since one compilation got hung up with -O3.

I built the libraries on Suse 12.1 X64 on a C2D E8400 system using the Intel 12.1 compilers,

If Intel objects to the large size of the file, I'll have to remove it; therefore, if you want to download it do it soon.

Attachments: 

AttachmentSize
Download netcdf413.tgz10.03 MB

Libraries downloaded, thanks! many thanks!

I don't know if it will work but I will try. The thing is that I need to install a software that writes its outputs in netcdf, but it is written in the instructions that I have to compile the code using the same compiler employed for building the netcdf (why? no clue). I compiled the code using intel 11.1, but I think it's worth to download the 12.1 and compile again the code.Thanks again for your help!

These days we see more of the runtime code pushed into shared libraries, which change with the compiler version. That is one reason for recommending that you use the same compiler version for building the NetCDF library as that used for building applications that use the library.

You will probably find that the libraries that I uploaded will not work with the 11.1 compiler. Specifically, you are likely to see unsatisfied references to routines such as _intel_sse2_strcpy.

I have the 11.1 C compiler installed, but when I upgraded to the 12.1 compiler I uninstalled the 11.1 Fortran compiler. Is it possible for you to install the 12.1 compilers, or would that be a problem?

I see, thaks for the clarification.I have been checking the intel releases, but I cannot find the intel fortran compiler 12.1.Version 11.1 -> 2 Jun 2011Version 2011 -> 28 Nov 2011Is the 2011 the release corresponding to the 12.1?In principle, I should be able to upgrade my intel version without big problems.

The post probably referred to 12.1.1, AKA XE 2011 update 7, issued in Oct. 2011. Update 8 was just posted this week.

You were right... the libraries did not work. Thus, I tried again to compile the netcdf with my intel compiler because I was unsure about your version. And... it worked!!! :)
I finally found the problem/s.
Firstly it is extremely important to take into account that the environtment variables of the bash shell and the user are different of the variables assigned to root or sudo. Well, I did not take that into account. And I mixed up everything using sudo and root user.
Then, I think that there is an error in the variables you proposed to be used in the compilation. I guess that you meant to say:
export CPPFLAGS="-I$HDF5D/include -I$SZIPD/include"
export LDFLAGS="-L$HDF5D/lib -L$SZIPD/lib -lhdf5 -lsz -limf"
without the quotation marks "" and linking to the imf libraries the compilation fails
Fantastic. Now, start fighting to install the rest of needed libraries...

Yes, you are correct; double quotes are needed when quoting strings containing shell variables that are to be substituted.

I had used actual paths enclosed in single quotes, and replaced them by symbolic directory names for posting. That was an error.

Leave a Comment

Please sign in to add a comment. Not a member? Join today