ubuntu – 找不到lgfortran

前端之家收集整理的这篇文章主要介绍了ubuntu – 找不到lgfortran前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Ubuntu 10.04并尝试编译一些使用gfortran的代码. Makefiles在某些时候做了:
-L. -lgfortran

我得到了错误

/usr/bin/ld: cannot find -lgfortran

虽然安装了:

ldconfig -p  |  grep   fortran
    libgfortran.so.3 (libc6,x86-64) => /usr/lib/libgfortran.so.3

我该如何解决

P.S:Makefile:

## FLAGS

CC:= gcc
C++:= g++
CFLAGS:= -c -O -Dintel -g 
FC:= gfortran
FFLAGS:= -c -O -cpp -g
LD:= g++
LDFLAGS:= -O


WETTER_CGAL_FLAGS:=  -g


#WETTER-Data
WETTER_cgal: weather.cpp surface_alg.h $(WETTER_CGAL_OBJECTS) WATT_interface.h data.cpp
    $(C++) $(WETTER_CGAL_FLAGS) -c weather.cpp -frounding-math
    $(C++) -c data.cpp -frounding-math 
    $(LD) $(WETTER_CGAL_OBJECTS) weather.o data.o -o WETTER_cgal -L. -lgfortran -lgmp -lCGAL -frounding-math -fp-model
您的gfortran版本是否与您的g版本不同?或者它可能安装在不同的位置?

-lname选项(在本例中为name为gfortran)指示链接器在库搜索路径中搜索名为libname.a的库文件.如果找到并且没有 – [B]静态选项强制执行静态链接,则链接器将再次搜索libname.so并改为链接(如果找到).如果找不到libname.a,则尽管存在libname.so,仍会给出错误.

在你的gfortran安装中应该有一个libgfortran.a.使用find搜索它并使用-L / path / to / compiler / libs提供g的路径.如果g与gfortran的版本相同,则libgfortran.a的路径已经存在于库搜索路径中(因为C/C++和Fortran静态库都位于同一位置).如果两个编译器的版本不同,它将不会出现.

例如,在基于64位RedHat的系统上,libgfortran.a位于/usr/lib / gcc / x86_64-redhat-linux /< GCC版本> /,而共享libgfortran.so.*位于/usr/lib64中.

另一种解决方案是用/usr/lib/libgfortran.so.3替换-lgfortran.

-L.选项与-lCGAL相关,而不是与-lgfortran相关.

原文链接:https://www.f2er.com/ubuntu/347510.html

猜你在找的Ubuntu相关文章