代码:块虽然安装了但无法检测到gfortran

时间:2015-10-20 21:00:08

标签: linux fortran codeblocks gnu gfortran

我相信我的问题类似于这篇文章:Linux: cannot find lgfortran though gfortran is installed。 但是,由于建议的答案并没有解决我的问题,除了再次询问之外似乎没有别的选择,对于像我这样绝望的Linux新人。

这是问题所在。我安装了GNU fortran编译器4.8.4,可以在终端

中找到它
$ which gfortran-4.8 
/usr/bin/gfortran-4.8

$ locate gfortran
/usr/bin/gfortran-4.7
/usr/bin/gfortran-4.8
/usr/bin/x86_64-linux-gnu-gfortran-4.7 
/usr/bin/x86_64-linux-gnu-gfortran-4.8
/usr/lib/gcc/x86_64-linux-gnu/4.7/libgfortran.a
/usr/lib/gcc/x86_64-linux-gnu/4.7/libgfortran.so
/usr/lib/gcc/x86_64-linux-gnu/4.7/libgfortran.spec
/usr/lib/gcc/x86_64-linux-gnu/4.7/libgfortranbegin.a
/usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.a
/usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.so
/usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.spec
/usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortranbegin.a
/usr/lib/x86_64-linux-gnu/libgfortran.so.3
/usr/lib/x86_64-linux-gnu/libgfortran.so.3.0.0
/usr/share/doc/gfortran-4.7
/usr/share/doc/gfortran-4.8
/usr/share/doc/libgfortran-4.7-dev
/usr/share/doc/libgfortran-4.8-dev
/usr/share/doc/libgfortran3
/usr/share/man/man1/gfortran-4.7.1.gz
/usr/share/man/man1/gfortran-4.8.1.gz
/usr/share/man/man1/x86_64-linux-gnu-gfortran-4.7.1.gz
/usr/share/man/man1/x86_64-linux-gnu-gfortran-4.8.1.gz
/var/cache/apt/archives/gfortran-4.7_4.7.3-12ubuntu1_amd64.deb
/var/cache/apt/archives/gfortran-4.8_4.8.4-2ubuntu1~14.04_amd64.deb
/var/cache/apt/archives/libgfortran-4.7-dev_4.7.3-12ubuntu1_amd64.deb
/var/cache/apt/archives/libgfortran-4.8-dev_4.8.4-2ubuntu1~14.04_amd64.deb
/var/cache/apt/archives/libgfortran3_4.8.4-2ubuntu1~14.04_amd64.deb
/var/lib/dpkg/info/gfortran-4.7.list
/var/lib/dpkg/info/gfortran-4.7.md5sums
/var/lib/dpkg/info/gfortran-4.8.list
/var/lib/dpkg/info/gfortran-4.8.md5sums
/var/lib/dpkg/info/libgfortran-4.7-dev:amd64.list
/var/lib/dpkg/info/libgfortran-4.7-dev:amd64.md5sums
/var/lib/dpkg/info/libgfortran-4.8-dev:amd64.list
/var/lib/dpkg/info/libgfortran-4.8-dev:amd64.md5sums
/var/lib/dpkg/info/libgfortran3:amd64.list
/var/lib/dpkg/info/libgfortran3:amd64.md5sums
/var/lib/dpkg/info/libgfortran3:amd64.postinst
/var/lib/dpkg/info/libgfortran3:amd64.postrm
/var/lib/dpkg/info/libgfortran3:amd64.shlibs
/var/lib/dpkg/info/libgfortran3:amd64.symbols

所以gfortran似乎已经安装了,虽然我不明白为什么4.7版本在我删除之后仍然存在。

在设置Code:Blocks的全局编译器设置时,当我选择GNU Fortran编译器及其工具链可执行文件时,我尝试了安装目录

/usr 

/usr/bin 

/usr/lib/gcc/x86_64-linux-gnu/4.8/

正如上一篇文章中所建议的,Code:Blocks告诉我

could not auto-detect installation path of "GNU Fortran Compiler".....

编译器配置的更多细节在图片中(感谢Mike的建议)。

Details of tool chain executables

这是我计算机上完整的编译器列表:

List of Compliers

2 个答案:

答案 0 :(得分:1)

您的帖子显示您同时拥有gfortran-4.7gfortran-4.8 安装在/usr/bin下。

拥有多个GCC Fortran编译器(或多个C或C ++编译器) 完全有效和平常。 Code :: Blocks将允许您配置 尽可能多的Fortran编译器,只要你给它们不同的东西 名。如果您只想将其中一个配置为 “GNU Fortran编译器”并忽略其他人。

但无论如何,Code :: Blocks必须能够明确地识别出来 已安装的编译器,您正在调用“GNU Fortran编译器”。您 已将编译器的安装目录指定为/usr/bin 并将程序文件编译器名称保留为gfortran

您的系统中没有/usr/bin/gfortran这样的编译器, 并且gfortran中的任何地方都没有名为PATH的程序。您 拥有/usr/bin/gfortran-4.7/usr/bin/gfortran-4.8。就像你一样 安装了它们,Code :: Blocks假定你想要它们。它 无法分辨您要将哪一个配置为“GNU Fortran编译器”。

所以: -

  • 设置编译器的安装目录 = /usr/bin
  • 程序文件中,将所有gfortran更改为gfortran-4.8, 如果你想要“GNU Fortran编译器”来表示gfortran-4.8
  • 好的。

答案 1 :(得分:0)

20.3 版本中的默认编译器名称是 mingw32-gfortran。但是,安装时附带的可执行文件名称是 x86_64-w64-mingw32-gfortran。如果这是在编译器设置中编写的。它有效。enter image description here