2017-11-02 6 views
0

Ich habe in letzter Zeit versucht, Bibliotheken in Fotran zu verwenden, aber ich hielt diese FehlermeldungKann nicht Fortran Module kompiliert: Nicht definiert Symbol _main

Undefined symbols for architecture x86_64: "_main", referenced from: implicit entry/start for main executable ld: symbol(s) not found for architecture x86_64 collect2: error: ld returned 1 exit status

, die ich jede spezifische Lösung auf immer finden cound't zu es. In diesem Fall arbeitete ich mit einigen Bibliotheken, die ich selbst gebaut habe (dieses Problem passierte mit statischen und gemeinsam genutzten Bibliotheken), aus Simple-Modulen, die ich für Testzwecke geschrieben habe.

Ich entschied mich, nur die Module dann zu versuchen, und ich erhielt immer die gleiche Fehlermeldung des Moduls, das ich verwendete. Ich würde gerne wissen, ob mir jemand helfen kann zu sagen, ob ich falsche Syntax verwende. Hier ist das Modul

module modulo1 

IMPLICIT NONE 

real, parameter:: pi=3.1415 

end module modulo1 

Dies ist der Haupt

program teste 

use modulo1 

IMPLICIT NONE 

real :: r = 2 

write (*,*) 'Área: ', pi*r**2 

end program teste 

Dies waren die Befehle, die ich für die Erstellung verwendet

gfortran -c modulo1.f90 
gfortran -c teste.f90 
gfortran -o teste.o modulo1.o 

Antwort

0

Ihre Kompilation gebrochen ist. Der Befehl

gfortran -o teste.o modulo1.o 

sagt gfortran eine ausführbare teste.o aus der Objektdatei modulo1.o aufgerufen aufgerufen zu erstellen. Da diese Moduldatei keinen program enthält, kann der Compiler keinen Einstiegspunkt für die ausführbare Datei finden, die er zu erstellen versucht. Das Argument für die Option -o ist der Name der zu erstellenden ausführbaren Datei.

Sie sollten wahrscheinlich diese Aussage mit so etwas wie

gfortran -o test teste.o modulo1.o 

ersetzen, die eine ausführbare test genannt bauen.

Im längeren Lauf lernen, wie man make oder ein anderes Build-System verwendet.

Verwandte Themen