【问题标题】:Cannot find -lgfortran though gfortran is installed [duplicate]尽管安装了 gfortran,但找不到 -lgfortran [重复]
【发布时间】:2012-07-24 12:58:08
【问题描述】:

可能重复:
lgfortran not found

我必须承认,我的问题可以被认为与lgfortran not found 非常相似,但由于我是 Linux 新手,我需要更多帮助,但在上述帖子中找不到我想要的内容。

我安装了一个新的 linux mint Debian 版本,我正在尝试为 Ada 制作一个 lapack 绑定。

如果我检查 gfortran,我会得到:

gfortran-4.6 -v
Using built-in specs.
COLLECT_GCC=gfortran-4.6
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i486-linux-gnu/4.6/lto-wrapper
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.6.3-1' --with-   bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++,go --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-objc-gc --enable-targets=all --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.6.3 (Debian 4.6.3-1)

如果我locate libgfortran,我会得到:

/usr/lib/gcc/i486-linux-gnu/4.6/libgfortran.a
/usr/lib/gcc/i486-linux-gnu/4.6/libgfortran.so
/usr/lib/gcc/i486-linux-gnu/4.6/libgfortran.spec
/usr/lib/gcc/i486-linux-gnu/4.6/libgfortranbegin.a
/usr/lib/i386-linux-gnu/libgfortran.so.3
/usr/lib/i386-linux-gnu/libgfortran.so.3.0.0
/usr/share/doc/libgfortran3
/var/lib/dpkg/info/libgfortran3.list
/var/lib/dpkg/info/libgfortran3.md5sums
/var/lib/dpkg/info/libgfortran3.postinst
/var/lib/dpkg/info/libgfortran3.postrm
/var/lib/dpkg/info/libgfortran3.shlibs
/var/lib/dpkg/info/libgfortran3.symbols

当我运行 makefile 时,我得到:

make all
gcc -c cxbbase.ads
gcc -c cxbbase.ads
gnatmake cxbi.adb -largs ifinc.o -lgfortran -lm
gnatbind -x cxbi.ali
gnatlink cxbi.ali ifinc.o -lgfortran -lm
/usr/gnat/libexec/gcc/i686-pc-linux-gnu/4.5.3/ld: cannot find -lgfortran
collect2: ld returned 1 exit status
gnatlink: error when calling /usr/gnat/bin/gcc
gnatmake: *** link failed.
make: *** [cxbi] Error 4

我正在使用的 makefile 在这里:

http://12000.org/my_notes/ada/lapack_and_blas/lapack_interf_makefile.txt

由于我是 Linux 新手,如果我能获得有关如何解决此问题的详细说明,我将不胜感激。

谢谢

【问题讨论】:

    标签: makefile static-libraries ada gfortran gnat


    【解决方案1】:

    解决方案是 /usr/lib/gcc/i486-linux-gnu/4.6 到 LIBRARY_PATH。此解决方案在 Comp Lang Ada 上进行了讨论:

    https://groups.google.com/forum/#!topic/comp.lang.ada/Ii7YljKqu5M

    【讨论】:

      【解决方案2】:

      您的 GNAT 和 GCC 版本不匹配。请为两者使用相同的版本。

      您的 GNAT 似乎是 4.5.3 版本,而您的 GCC 是 4.6.3。

      我的猜测是您必须更新 GNAT(Debian 上的 gnat 软件包)。你是怎么安装 GNAT 的? Debian 似乎只有 4.4 和 4.6 在 repos 中。另外,官方包根本不使用/usr/gnat

      【讨论】:

      • @oenone。谢谢。我从 Adacore libre 安装了 GNAT GPL。我之前有 Debian 打包的 Ada (stable) 版本 4.4,但是 makefile 在 2 行之后就停止了。所以我认为 GNAT 有问题。这就是我选择没有为 Debian 打包的 GNAT GPL 的原因。
      • 使用 GNAT GPL,makefile 的执行时间比使用 GNAT 4.4 的时间长(即更多行),但后来我收到了有关 lgfortran 的抱怨。但是你真的相信这是 GNAT 的错还是 lgfortran 或 gfortran 的问题?谢谢。
      • 是的,我注意到官方或打包的 debian GNAT 使用 /usr/bin/gcc 而不是 /usr/gnat/bin/gcc。 1 票赞成。
      猜你喜欢
      • 1970-01-01
      • 2016-07-05
      • 1970-01-01
      • 1970-01-01
      • 2012-12-12
      • 1970-01-01
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多