Esiste un compilatore / emulatore Fortran per iOS?

7

Qualcuno ha mai incontrato un emulatore o un compilatore Fortran 77 per dispositivi iOS?

    
posta user18788 15.02.2012 - 20:12
fonte

2 risposte

4

Può essere realizzato utilizzando il plugin Dragonegg per GCC (frontend), un'installazione LLVM generica (backend) e il linker Apple. Sono stato in grado di creare ed eseguire correttamente un'applicazione Fortran a 64 bit su iOS 8.1 basata su Mac OS X 10.10 utilizzando GCC 4.8 e LLVM 3.5. Il processo non è molto semplice e richiede una serie di hack e alcuni script, ma i passaggi di alto livello sono:

  1. Installa GCC 4.8 da HPC per Mac OS X in / usr / local
  2. Installa Clang / LLVM 3.5 da llvm.org in / usr / local
  3. Scarica il codice sorgente di Dragonegg dal sito Web di LLVM
  4. Costruisci dragonegg.so e installalo in /usr/local/lib/gcc/x86_64-apple-darwin12.5.0/4.8.1/plugin
  5. Scarica sorgenti di GCC 4.8.1
  6. Costruisci libgfortran per arm64 usando una combinazione di Apple clang per C / C ++, Dragonegg per Fortran e alcuni script wrapper per mettere insieme i compilatori
  7. Installa libgfortran.dylib e libgfortran.3.dylib in /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/usr/lib
  8. Installa libgfortran.3.dylib su iPhone sotto / usr / local / lib

Ora, se sei arrivato a questo punto, compila un file sorgente Fortran in 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/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk -lSystem -lgfortran main.o -o main

I binari precompilati per Dragonegg e libgfortran possono essere trovati qui: link

UPDATE: l'archivio binari precompilato ora contiene le librerie fat (armv7s, arm64) e alcune correzioni di bug agli script wrapper.

    
risposta data 21.11.2014 - 10:44
fonte
3

Forse è meglio farlo con un pre-compilatore che traduce Fortran in C (e lo integri in Xcode come fase di costruzione separata). Uno di questi strumenti è ad es. link

Forse si può anche dare un'occhiata al compilatore fortran di gnu, per quanto mi ricordo anch'esso è iniziato come precompilatore traducendo Fortran in C. link

    
risposta data 16.02.2012 - 07:10
fonte

Leggi altre domande sui tag