¿Hay un compilador / emulador FORTRAN para iOS? -- ios camp apple Relacionados El problema

Is there a Fortran compiler/emulator for iOS?


7
vote

problema

Español

¿Alguien se encuentra con un emulador de Fortran 77 o compilador para dispositivos iOS?

Original en ingles

Has anyone come across a Fortran 77 emulator or compiler for iOS devices?

  
   
   

Lista de respuestas

4
 
vote

Se puede lograr usando el plugin Dragonegg para GCC (Frontend), una instalación de LLVM genérica (backend) y el enlazador de Apple. He podido construir y ejecutar con éxito una aplicación FORTRAN de 64 bits en iOS 8.1 construida en Mac OS X 10.10 usando GCC 4.8 y LLVM 3.5. El proceso no es muy sencillo y requiere una serie de hacks y algunos scripts, pero los pasos de alto nivel son:

  1. Instale GCC 4.8 de HPC para Mac OS X en / usr / local
  2. instalar clang / llvm 3.5 de llvm.org en / usr / local
  3. Descarga el código fuente de Dragoneg desde el sitio web de LLVM
  4. construir dragonegg.so e instalarlo a /usr/local/lib/gcc/x86_64-apple-darwin12.5.0/4.8.1/plugin
  5. descargar GCC 4.8.1 Fuentes
  6. construir LibgForteRan para ARM64 usando una combinación de manzana Clang para C / C ++, Dragonegg para FORTRAN, y algunos scripts de envoltura para juntar los compiladores
  7. Instalar libgfortran.dylib y libgfortran.3.dylib to /applications/xcode.app/contents/developer/platforms/ifoneos.platform/developer/sdks/Iphoneos8.1.sdk/usr/lib
  8. Instalar libgfortran.3.dylib en el iPhone debajo / usr / local / lib

Ahora, si llega hasta este momento, compile un archivo fuente de Fortran en un binario IOS usando:

  1. GFORTRAN -O3 -FPLUGIN = dragonegg -fplugin-arg-dragonegg-llvm-codegen-optimize = 3 -fplugin-arg-dragonegg-emit-ir -s -o main.s main.f
  2. llc -mtriple arm64-apple-darwin -filetype = obj -o main.o main.s
  3. ld -arch arm64 -syslibroot /applications/xcode.app/contents/developer/platforms/ifoneos.platform/developer/sdks/iphoneos8.1.sdk -lsystem -lgfortran main.o -o principal

Binarios precompilados para Dragonegg y LibgFortRan se pueden encontrar aquí: http: / /download.Zeroepoch.com/gfortran-ios/gforteRan-ios.tar.bz2

Actualización: El archivo binarios precompilado ahora contiene bibliotecas de grasa (ARMV7S, ARM64) y algunas correcciones de errores a los scripts de envoltura.

 

It can be accomplished using the Dragonegg plugin for GCC (frontend), a generic LLVM installation (backend), and the Apple linker. I have been able to successfully build and run a 64-bit Fortran application on iOS 8.1 built on Mac OS X 10.10 using GCC 4.8 and LLVM 3.5. The process is not very straightforward and requires a number of hacks and some scripting, but the high-level steps are:

  1. Install GCC 4.8 from HPC for Mac OS X into /usr/local
  2. Install Clang/LLVM 3.5 from llvm.org into /usr/local
  3. Download the Dragonegg source code from the LLVM website
  4. Build dragonegg.so and install it to /usr/local/lib/gcc/x86_64-apple-darwin12.5.0/4.8.1/plugin
  5. Download GCC 4.8.1 sources
  6. Build libgfortran for arm64 using a combination of Apple clang for C/C++, Dragonegg for Fortran, and some wrapper scripts to piece together the compilers
  7. Install libgfortran.dylib and libgfortran.3.dylib to /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/usr/lib
  8. Install libgfortran.3.dylib on the iPhone under /usr/local/lib

Now if you got this far, compile a Fortran source file into an iOS binary using:

  1. gfortran -O3 -fplugin=dragonegg -fplugin-arg-dragonegg-llvm-codegen-optimize=3 -fplugin-arg-dragonegg-emit-ir -S -o main.s main.f
  2. llc -mtriple arm64-apple-darwin -filetype=obj -o main.o main.s
  3. ld -arch arm64 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk -lSystem -lgfortran main.o -o main

Precompiled binaries for Dragonegg and libgfortran can be found here: http://download.zeroepoch.com/gfortran-ios/gfortran-ios.tar.bz2

UPDATE: The precompiled binaries archive now contains fat libraries (armv7s, arm64) and some bug fixes to the wrapper scripts.

 
 
         
         
3
 
vote

Tal vez sea mejor realizado con un preacopilador que se traduce Fortran a C (e integre eso en Xcode como un paso de construcción separado). Una de esas herramientas es por ejemplo. http://www.greatmigrations.com/tools_gmforteRan.aspx

Tal vez uno puede echar un vistazo al compilador de GNU Fortran, por lo que recuerdo que también comenzó como un precompilador que se traduce Fortran a C. http://gcc.gnu.org/orteran/

 

Perhaps it's best done with a pre-compiler translating Fortran to C (and integrate that into Xcode as a separate build step). One such tool is e.g. http://www.greatmigrations.com/tools_gmFortran.aspx

Maybe one can also have a look at the gnu fortran compiler, as far as I remember it also started out as a precompiler translating Fortran to C. http://gcc.gnu.org/fortran/

 
 

Relacionados problema

2  Administrar programas de desarrolladores de iOS para varias compañías  ( Manage ios developer enterprise programs for several companies ) 
Soy un comerciante único y he desarrollado una aplicación para iPad que voy a vender a varias compañías de forma independiente. Son pequeñas empresas (& lt; 5...

2  Notas sobre iOS 7 se estrellan en el inicio  ( Notes on ios 7 crashing on startup ) 
Después de actualizar a iOS 7, la aplicación Standard Notes se bloquea al iniciarlo. Estoy ejecutando iOS 7.0 y he reproducido esto después de un apagado li...

27  ¿Cómo deshabilitar temporalmente todas las notificaciones de iOS al usar / reflejando activamente el dispositivo?  ( How to disable all ios notifications temporarily while actively using mirroring ) 
Yo uso My Ipad Mucho, ya que enseño, que muestra las diapositivas de los alumnos, los videos, etc. Tener palabras con amigos, dibujar algo o notificación po...

8  ¿Cómo encuentro un contacto recientemente añadido?  ( How do i find a recently added contact ) 
Hace poco conocí a alguien y los conseguí para escribir su información en mis contactos. Estaba muy ocupado por unos días y no me movía para contactarlos. Aho...

1  En la aplicación de música iOS 5, algunas canciones tienen un círculo con una pequeña plaza a su lado  ( In the ios 5 music app some songs have a circle with small square beside them ) 
Me gustaría saber cómo eliminar las canciones con esta forma al lado de su título porque parecen arruinar la reproducción de la canción. Cuando parecen la a...

1  cifrado iOS y AES  ( Ios and aes encryption ) 
He estado buscando una solicitud de diario / diario para el iPad que cifrará los contenidos de la revista. Aunque no hay escasez de revistas y notas. Tomar ap...

7  Ocultar el reloj en el iPhone 6+ Lockscreen  ( Hide the clock on the iphone 6 lockscreen ) 
¿No hay manera de ocultar el reloj en la pantalla de bloqueo del iPhone 6+? ...

4  ¿La aplicación revisa la revisión de rechazo en la lista de todos los problemas?  ( Does app review rejection list all issues ) 
Nuestra aplicación fue rechazada recientemente con la razón por la que Google+ Signin, que entendimos no está de acuerdo con la política de Apple y la necesid...

0  Eliminar aplicaciones de iOS de la historia de la compra [duplicar]  ( Remove ios apps from purchase history ) 
Esta pregunta ya tiene respuestas aquí : Eliminación de las compras de la tienda de aplicaciones de ...

1  Cancelar la actualización de iOS en iPad  ( Cancel ios update on ipad ) 
Tengo un iPad 4 + Wifi + 32 GB conmigo y me estaba mostrando una actualización para iOS 6.1.3. No lo he seleccionado, ya que hay múltiples problemas con la pa...

5  Zona horaria de Apple Calendar  ( Apple calendar time zone ) 
Este ha sido un problema dentro y fuera a lo largo de los años, pero nunca he recibido una solución totalmente de trabajo. Los problemas se producen princip...

4  "ITunes no pudo conectarse a este iPhone. Este dispositivo ya no está conectado "  ( Itunes could not connect to this iphone this device is no longer connected ) 
Tengo un iPad Air de primera generación (con IOS actualizado 8.1) Cuando lo conecto a mi IMAC de 2013 (con OS X actualizado ySemite 10.10) - No funciona. ...

2  ¿Cómo activar un iPhone usado enlazado a otra cuenta (ya eliminada de iCloud)?  ( How to activate a used iphone bound to another account already removed from icl ) 
Quiero pasar mi iPhone a un amigo. Retrocedí su viejo teléfono y lo restauré a la nueva. Después de reiniciarlo, veo esto: Este es el caso, porque había ...

3  Mi iPad tiene una ventana emergente que dice que tengo un virus  ( My ipad has a popup saying i have a virus ) 
Cuando fui a un sitio web en Safari, abrió otro sitio web con ventanas emergentes que reclaman mi iPad tiene un virus. Eliminé algunas de mis aplicaciones p...

4  iOS 13 no reconociendo contactos con código de país  ( Ios 13 not recognizing contacts with country code ) 
Esta mañana descargué el nuevo IOS 13 (lanzamiento oficial) y lo encontré muy fresco, especialmente en modo oscuro. La cosa es que comencé a recibir llamada...




© 2021 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos


Licensed under cc by-sa 3.0 with attribution required.