从 Ubuntu 终端运行 FORTRAN *.exe

从 Ubuntu 终端运行 FORTRAN *.exe

我正在尝试在 Ubuntu 中运行 FORTRAN 程序。代码已编译,结果是我有以下 2 个文件:

sfsptest2.exe
yyVx6634XC.INP

这些文件位于:/home/user_test/FileList

在 Ubuntu 命令行中输入:

cd FileList/
./sfsptest2.exe yyVx6634XC.INP

我明白了

bash: ./sfsptest2.exe: Permission denied

如果我使用:

gfortran sfsptest2.exe yyVx6634XC.INP

我收到此错误信息:

/usr/bin/ld:yyVx6634XC.INP: file format not recognized: treating like linker script
/usr/bin/ld:yyVx6634XC.INP:1: syntax error
collect2: error: ld returned 1 exit status

.exe有没有办法从 Ubuntu 的终端运行这个 FORTRAN文件?

编辑:*.exe文件是在 Windows 中使用 FORTRAN 95 编译器生成的。

答案1

理解以下内容很重要:

你的.exe程序是不是FORTRAN 程序,它是一个 Windows 可执行文件,Bash 和 FORTRAN 编译器都无法理解它。

当我说它不是一个 FORTRAN 程序时我真心的

它可能已经某些工程师的计算机上的 FORTRAN 列表,但一旦编译,它就与用 BASIC、Pascal 或 C++ 构建的 Windows 可执行文件没有区别(*)。

http://en.wikipedia.org/wiki/Compiler

因此,这里的方法是将其加载到 Windows 模拟器 - Wine,例如:

$ wine yourprogram.exe

当然,您也可以使用 VirtualBox 或您选择的虚拟化环境在 Windows 虚拟机中运行它。

如果您可以获得 FORTRAN 源代码(并且它不是过于复杂或依赖于特定的库)您可能想尝试在 Linux 下编译它。

(*) 这不是完全正确,但这就是它的要点,除非您想深入研究逆向工程和反编译的主题:)

答案2

您的程序是为 Windows 编译的,无法在 Linux 上运行。编译基本上是一种将编写程序的编程语言(即人类理解的语言)翻译成计算机理解的语言的方法。您这里的程序已从中文翻译成法语(Windows),而您正尝试用英语(Linux)阅读它。这是行不通的。

您要么需要在 Linux 上重新编译,要么尝试通过 Wine 运行它。

相关内容