¿Hay un compilador / emulador de Fortran para iOS?

7

¿Alguien se ha topado con un emulador o compilador Fortran 77 para dispositivos iOS?

    
pregunta user18788 15.02.2012 - 20:12

2 respuestas

4

Se puede lograr usando el complemento Dragonegg para GCC (frontend), una instalación genérica de LLVM (backend) y el enlazador de Apple. He podido construir y ejecutar con éxito una aplicación Fortran de 64 bits en iOS 8.1 integrada en Mac OS X 10.10 utilizando GCC 4.8 y LLVM 3.5. El proceso no es muy sencillo y requiere una serie de trucos y algunas secuencias de comandos, pero los pasos de alto nivel son:

  1. Instale GCC 4.8 de HPC para Mac OS X en / usr / local
  2. Instale Clang / LLVM 3.5 desde llvm.org en / usr / local
  3. Descargue el código fuente de Dragonegg desde el sitio web de LLVM
  4. Genere dragonegg.so e instálelo en /usr/local/lib/gcc/x86_64-apple-darwin12.5.0/4.8.1/plugin
  5. Descargue las fuentes de GCC 4.8.1
  6. Cree libgfortran para arm64 usando una combinación de Apple clang para C / C ++, Dragonegg para Fortran y algunos scripts de envoltura para juntar los compiladores
  7. Instale libgfortran.dylib y libgfortran.3.dylib en /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/usr/lib
  8. Instale libgfortran.3.dylib en el iPhone en / usr / local / lib

Ahora, si llegó tan lejos, compile un archivo fuente de Fortran en un binario de 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/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk -lSystem -lgfortran main.o -o main

Los binarios precompilados para Dragonegg y libgfortran se pueden encontrar aquí: enlace

ACTUALIZACIÓN: el archivo de archivos binarios precompilados ahora contiene bibliotecas (armv7s, arm64) y algunas correcciones de errores en los scripts de envoltura.

    
respondido por el Eric 21.11.2014 - 10:44
3

Quizás es mejor hacerlo con un precompilador que traduzca Fortran a C (e integrarlo en Xcode como un paso de compilación separado). Una de estas herramientas es, por ejemplo, enlace

Tal vez también se puede echar un vistazo al compilador gnu fortran, por lo que recuerdo, también comenzó como un precompilador que traduce Fortran a C. enlace

    
respondido por el vilmoskörte 16.02.2012 - 07:10

Lea otras preguntas en las etiquetas