C compiler cannot create executables


#1

Hello everyone,
I am trying to install HDF5 (1.14.0) on Ubuntu 22.04 (intel) system with the following command (enabling the parallel and using mpi):
./configure CC=mpicc FC=mpif90 --prefix="/home/user/PHDF5PATH" --enable-fortran --enable-parallel
but I got error: C compiler cannot create executables, when I looked at the log file the error starts as soon as ‘-V’ and ‘-qversion’ did not recognized for the mpicc and gcc and resulted in fatal error.
Following you can see part of log file that encounters the errors:

gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04)
… rest of stderr output deleted …
configure:4839: $? = 0
configure:4828: mpicc -V >&5
gcc: error: unrecognized command-line option ‘-V’
gcc: fatal error: no input files
compilation terminated.
configure:4839: $? = 1
configure:4828: mpicc -qversion >&5
gcc: error: unrecognized command-line option ‘-qversion’; did you mean ‘–version’?
gcc: fatal error: no input files
compilation terminated.
configure:4839: $? = 1
configure:4859: checking whether the C compiler works
configure:4881: mpicc /home/user/OMPIPATH/include/ /home/user/OMPIPATH/include/ /home/user/OMPIPATH/lib/ conftest.c >&5
/usr/bin/ld: cannot find /home/user/OMPIPATH/include/: file format not recognized
/usr/bin/ld: cannot find /home/user/OMPIPATH/include/: file format not recognized
/usr/bin/ld: cannot find /home/user/OMPIPATH/lib/: file format not recognized
collect2: error: ld returned 1 exit status
configure:4885: $? = 1
configure:4923: result: no


#2

This sounds like a recent known problem with Intel compilers. Do you have config.log? Does it contain “cannot find -loopopt”?

If not, then please post config.log and full console output, as text file attachments (not in message body).


#3

Hello Dave,
Thank you for your reply, there is no “cannot find -loopopt” in the log file.
Of course, I have attached the log file and console output.
config.log (37.8 KB)
output.txt (1.4 KB)


#4

Thanks. My first guess was wrong, this has nothing to do with Intel. In config.log lines 103-156, these settings don’t seem right. These should be compiler option strings, not simple paths with no options in front of them such as -I or -L. This is causing the compile failure at line 1042.

CFLAGS=/home/maryam/OMPIPATH/include/
CPPFLAGS=/home/maryam/OMPIPATH/include/
FFLAGS=/home/maryam/OMPIPATH/include/
LDFLAGS=/home/maryam/OMPIPATH/lib/

If you have set these in your environment before “configure”, try unsetting them, and run configure again. You might also need to keep these paths but put -I in front of the include paths, and -L in front of the lib path, to correctly build HDF5 parallel.


#5

Yes I have set them in .bashrc file so the correct path would be like following?

export CFLAGS="/home/maryam/OMPIPATH/include/ -I"

I have attached my .bashrc related lines too. bash-lines.txt (397 Bytes)


#6

No. Like this:

export CFLAGS="-I /home/maryam/OMPIPATH/include/"
export CPPFLAGS="-I /home/maryam/OMPIPATH/include/"
export FFLAGS="-I /home/maryam/OMPIPATH/include/"
export LDFLAGS="-L /home/maryam/OMPIPATH/lib/"

If that doesn’t work, just try setting all four to blank. Actually, try that first. This depends on the requirements of your mpicc installation, which I do not understand.

For more details on the use of FLAGS variables, please see part 4.3.6 in hdf5-1.14.0/release_docs/INSTALL.


#8

Thank you, I am reviewing the release doc now, but by setting to blank or using -I -L in front of the path both result in following error:

configure: error: Fortran could not compile .f90 files

which is the case that I am not sure with following command (using mpi and parallel installing), what path for F77, F90 or any other fortran prefix I have to set in .bashrc.

./configure CC=mpicc FC=mpif90 --prefix="/home/maryam/PHDF5PATH" --enable-fortran --enable-parallel

Here is new log file
config.log (58.4 KB)


#9

Good, the C compiler problem is solved. Now it looks like there is a problem with your fortran compiler.

configure:6857: mpif90 --version >&5
--------------------------------------------------------------------------
No underlying compiler was specified in the wrapper compiler data file
(e.g., mpicc-wrapper-data.txt)
--------------------------------------------------------------------------

If you do not need fortran, the simplest solution would be to remove “–enable-fortran”, and make a C-only, parallel build.

If you do need fortran, then this looks like a configuration problem with the fortran compiler itself, not HDF5. Please confirm that you can compile a simple fortran program such as Hello World, with mpif90.


#10

Thank you in advance Dave.
Yes it seemed the mpi did not install by fortran correctly. It solved my problem.
I appreciate your time and help.
Bests,
Maryam