Execute FORTRAN * .exe do terminal do Ubuntu

2

Estou tentando executar um programa FORTRAN no Ubuntu. Código foi compilado e o resultado é que eu tenho os 2 arquivos a seguir:

sfsptest2.exe
yyVx6634XC.INP

Esses arquivos estão localizados em: / home / user_test / FileList

Na linha de comando do Ubuntu, eu digito:

cd FileList/
./sfsptest2.exe yyVx6634XC.INP

Eu obtenho

bash: ./sfsptest2.exe: Permission denied

Se eu usar:

gfortran sfsptest2.exe yyVx6634XC.INP

Eu recebo esta mensagem de erro:

/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

Existe uma maneira de executar esse arquivo FORTRAN .exe do terminal no Ubuntu?

EDITAR: O arquivo *.exe foi produzido no Windows com um compilador FORTRAN 95.

    
por W R 02.04.2015 / 21:32

2 respostas

2

É importante entender o seguinte:

Seu programa .exe é não um programa FORTRAN, é um executável do Windows, e nem o compilador Bash nem o FORTRAN o entenderão.

Quando digo que não é um programa em FORTRAN, eu realmente quero dizer .

Poderia ter sido uma listagem FORTRAN no computador de algum engenheiro, mas uma vez compilada, é indistinguível (*) de um executável do Windows construído em BASIC, Pascal ou C ++.

link

Portanto, o caminho a seguir é carregá-lo em um emulador do Windows - Wine, por exemplo:

$ wine yourprogram.exe

É claro que você também pode executá-lo em uma máquina virtual do Windows usando o VirtualBox ou o ambiente de virtualização de sua escolha.

Se você pode obter os fontes FORTRAN (e não é excessivamente complexo ou dependente de bibliotecas específicas) você pode querer tentar compilá-lo no Linux.

(*) Isso não é inteiramente correto, mas essa é a essência dele, a menos que você queira se aprofundar nos tópicos de engenharia reversa e descompilação :)

    
por Tobia Tesan 03.04.2015 / 18:54
1

Seu programa foi compilado para o Windows e não será executado no Linux. A compilação é basicamente uma maneira de traduzir a linguagem de programação na qual um programa foi escrito (algo que um ser humano entende) em uma linguagem que o computador entende. O que você tem aqui é um programa que foi traduzido do chinês para o francês (Windows) e você está tentando lê-lo em inglês (Linux). Isso não vai funcionar.

Você precisará recompilar no Linux ou tentar executá-lo via Wine.

    
por terdon 03.04.2015 / 16:43