我正在尝试在 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 运行它。