你没有提到你在编译过程中遇到了什么错误。请参阅此链接。具体来说:
\n\n -std=*std*\n
Run Code Online (Sandbox Code Playgroud)\n\n其中std可以是 \xe2\x80\x98f95\xe2\x80\x99、\xe2\x80\x98f2003\xe2\x80\x99、\xe2\x80\x98f2008\xe2\x80\x99、\xe2\x80\ 之一x98gnu\xe2\x80\x99 或 \xe2\x80\x98legacy\xe2\x80\x99。这
\n\n\n\n\nstd 的默认值为 \xe2\x80\x98gnu\xe2\x80\x99。来自同一页面: \n \xe2\x80\x98legacy\xe2\x80\x99 值是等效的,但没有过时扩展的警告,并且可能对旧的非标准程序有用。\xe2\x80\x98f95\xe2\x80\x99、\xe2\x80\x98f2003\xe2\x80\x99 和 \xe2\x80\x98f2008\xe2\x80\x99 值指定严格符合 Fortran 95、Fortran 2003和 Fortran 2008 标准;对于超出相关语言标准的所有扩展都会给出错误,并且对于在以后的标准中允许但已过时的 Fortran 77 功能给出警告。
\n
例如,如果您有一个文件old_fortran.f77
要编译,您可以这样做:
gfortran -std=legacy old_fortran.f77 -o a.out\n
Run Code Online (Sandbox Code Playgroud)\n\nwhere-o a.out
为您提供可执行文件a.out
。我已经成功使用了该编译器的旧版本,但没有使用此选项。不过您可能会收到一些警告。第一次尝试:
gfortran old_fortran.f77 -o a.out\n
Run Code Online (Sandbox Code Playgroud)\n\n编辑:查看OP下面的评论后,看起来可能涉及一个不同的问题。可能是您的安装有错误(这是可能的)或者您的安装LD_LIBRARY_PATH
搞砸了。我认为路径中的链接器 (ld) 是 32 位,编译器创建的目标文件可能是 64 位。只是一种预感。你可以发布输出
which ld\n
Run Code Online (Sandbox Code Playgroud)\n\n假设返回:/path/to/ld。然后获取该输出并执行
\n\n file /path/to/ld\n
Run Code Online (Sandbox Code Playgroud)\n\n您可以将这两个命令的输出作为评论发布吗?
\n 归档时间: |
|
查看次数: |
13860 次 |
最近记录: |