2010-07-29 7 views
2

J'ai un programme Fortran, que je peux compiler en utilisant f77, f95 ou ifort sur les trois systèmes d'exploitation que j'ai (ce sont les systèmes i386, ia64 et x86_64). Cependant, je veux être capable de compiler seulement deux types d'exécutables, de sorte que je puisse partager le programme et pas le code. Lorsque je compile sur l'un des ordinateurs et essayez d'exécuter le fichier binaire compilé sur un autre, j'obtiens le message d'erreur cannot execute binary file. Est-ce que quelqu'un a une idée de ce que je peux faire à ce sujet?Fortran compilation sur plusieurs systèmes

+0

De quels systèmes d'exploitation parlez-vous? –

+0

Linux machine1 2.6.18-164.6.1.el5 # 1 SMP mar 3 nov 16:12:36 EST 2009 x86_64 x86_64 x86_64 GNU/Linux Linux machine2 2.6.5-7.276-sn2 # 1 SMP lun. Juil. 24 10:45 : 31 UTC 2006 ia64 ia64 ia64 GNU/Linux Linux machine3 2.6.9-34.ELsmp # 1 SMP Fri Feb 24 16:54:53 EST 2006 i686 i686 i386 GNU/Linux – fizboz

Répondre

4

Si vous souhaitez que les machines les exécutent en mode natif, vous ne pouvez pas le faire. Vous avez trois architectures différentes, vous avez donc besoin de trois binaires différents.

Cependant, x86_64 (plus communément appelé amd64) a la capacité d'exécuter du code i386, avec une légère pénalité de performance. Donc, si vous êtes prêt à abandonner 64 bits, vous pouvez théoriquement abandonner le binaire amd64 et simplement utiliser le i386 sur cette machine. Vous devrez installer l'environnement d'émulation i386 sur la machine pour que cela fonctionne.

Il est possible que ia64 prenne en charge quelque chose de similaire; Je ne sais pas ia64.

+0

wow, je pensais que j'avais essayé toutes les possibilités , mais n'a pas essayé celui-ci apparemment. Le code i386 fonctionne vraiment sur x86_64. Je suppose que je dois en faire un séparé pour ia64. – fizboz

Questions connexes