GCC和GFortran之间的联系

时间:2015-06-01 09:44:08

标签: c gcc fortran gfortran

我在用gcc编译库hypoct时遇到了一些问题。

库是用Fortran编写的,因为我对Fortran一无所知,所以我想使用与Fortran代码捆绑在一起的C包装器。 库结构如下:

src/hypoct.f90 --------------> Main code
src/hypoct_c.f90 ------------> Fortran part of the C wrapper
c/hypoct.c ------------------> C Part of the C wrapper
examples/hypoct_driver.c ----> Example that I want to compile

现在,在Fortran代码编译期间没有问题,我启动以下命令没有错误或警告:

gfortran -fPIC -Wall -O3  -Jbin -c src/hypoct.f90 -o bin/hypoct.o
gfortran -fPIC -Wall -O3  -Jbin -c src/hypoct_c.f90 -o bin/hypoct_c.o

但是当最后一个命令启动时:

gcc -o examples/hypoct_driver -fPIC -Wall -O3 -Ibin -Ic -lgfortran -lm examples/hypoct_driver.c bin/hypoct.o bin/hypoct_c.o

出现了很长的错误列表:

bin/hypoct.o: In function `__hypoct_MOD_hypoct_malloc2i':
hypoct.f90:(.text+0xa61): undefined reference to `_gfortran_runtime_error_at'
hypoct.f90:(.text+0xa6f): undefined reference to `_gfortran_runtime_error'
hypoct.f90:(.text+0xa7b): undefined reference to `_gfortran_os_error'
hypoct.f90:(.text+0xa97): undefined reference to `_gfortran_runtime_error_at'

但是,如果我在最后一个命令中将gcc更改为gfortran,一切正常,没有错误(但我真的想在最后一个命令中使用gcc)。

我在这几天都在努力,任何帮助都非常感激。

0 个答案:

没有答案