gcc:致命错误:没有输入文件

时间:2015-04-24 16:32:27

标签: gcc makefile mpi

我正在尝试编译一些源代码,但在输入" make"后出现了以下错误输出:

mpicc -c -O3 -I        func_pointer.c
gcc: fatal error: no input files
compilation terminated.
make: *** [func_pointer.o] Error 4

我在本网站上看到过与此错误输出相关的其他主题(123)。事实上,我之前遇到过类似的问题,我想我可能已经解决了这个问题,其中" make"命令正在产生:

make: Circular mod_prec.o <- mod_prec.o dependency dropped.
make: Circular mod_prec.o <- mod_prec.o dependency dropped.
make: Circular mod_prec.o <- mod_prec.o dependency dropped.
/usr/bin/cpp -P -C -traditional  -DIFORT -P -C -traditional    -DWET_DRY -DMULTIPROCESSOR    -DLIMITED_NO  -DGCN                                        mod_prec.F > mod_prec.f90
mpif90  -c  -O3 -I        mod_prec.f90
gfortran: fatal error: no input files
compilation terminated.
make: *** [mod_prec.o] Error 4

我按照website上建议的步骤进行了操作,我认为可能已经解决了这个问题(我相信我正在进一步完成makefile)。这些步骤如下:

dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ which mpif90
/usr/local/bin/mpif90
dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ mpif90 -show
gfortran -I/usr/local/include -pthread -I/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib -Wl,--enable-new-dtags -L/usr/local/lib -lmpi_usempi -lmpi_mpifh -lmpi
dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ mpif90 -V
gfortran: error: unrecognized command line option ‘-V’
gfortran: fatal error: no input files
compilation terminated.
dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ export MPI_LOC=/usr/local
dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ export MPI_INCLUDE="$MPI_LOC"/includedan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ export MPI_LIB="$MPI_LOC"/lib
dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ export LD_LIBRARY_PATH=$MPI_LIB:$LD_LIBRARY_PATH
dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ export LIBMPI="-pthread -Wl -rpath -Wl -Wl,--enable-new-dtags -lmpi -lmpi_usempi -lmpi_mpifh -lmpi"

增加一步:

dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ make clean
/bin/rm -f *.o *.mod *.f90

这让我到了目前的位置。我的直觉是,我当前问题的解决方案与我之前的问题类似。但是,我是linux / c / fortran的新手,所以我不确定我是否完全遵循以前的解决方案。因此,以下命令产生以下输出:

dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ which mpicc
/usr/local/bin/mpicc
dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ mpicc -show
gcc -I/usr/local/include -pthread -Wl,-rpath -Wl,/usr/local/lib -Wl,--enable-new-dtags -L/usr/local/lib -lmpi
dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ mpicc -V
gcc: error: unrecognized command line option ‘-V’
gcc: fatal error: no input files
compilation terminated.

我是否未能正确定义导致此问题的一些变量?我意识到这个问题变得相当长,但是如果需要的话我可以添加额外的信息,例如makefile(虽然这很长)。

1 个答案:

答案 0 :(得分:1)

在新硬盘上编译FVCOM时再次遇到问题后回答我自己的问题。正如Etan提出的那样,问题是-I标志。在make.inc文件中取消注释本地安装下的LIBDIR和INCDIR变量,并在上面注释掉相同的变量。