Ich habe einige Probleme mit der Aufnahme einer Bibliothek in einem Makefile.Fehler beim Einbinden einer Bibliothek in Makefile
Die Bibliothek nlopt
wird in /usr/lib
und mein Programm installiert richtig läuft, wenn ich es von der Kommandozeile kompilieren:
gfortran -I/usr/include main.f90 -L/usr/lib -lnlopt -lm -o exec
aber ich brauche eine Make-Datei zu verwenden. Die unter in Ordnung zu sein scheint, aber es funktioniert nicht, erhalte ich:
main.f90:19: Error: Can't open included file 'nlopt.f'
Könnten Sie bei der Suche nach den Fehlern bitte helfen?
INCLUDES = -I/usr/include
LFLAGS = -L/usr/lib
LIBS = -lnlopt -lm
objects = main.o
f90comp = gfortran
exec: $(objects)
$(f90comp) $(INCLUDES) -o exec $(objects) $(LFLAGS) $(LIBS)
main.o: main.f90
$(f90comp) -c main.f90
clean:
rm *.o *.mod exec
rm $(objects)
# End of the makefile
(Vor $ (f90comp) und rm gibt es Tab)
Wo ist die Datei 'nlopt.f'? Ist es in 'usr/include'? Und sind Sie sicher, dass der Compiler die Reihenfolge der Argumente nicht interessiert? (Ich würde die * genaue * gleiche Reihenfolge versuchen, um sicher zu sein.) – Beta
Können Sie die gesamte Ausgabe von 'make' zeigen? Ich habe das Gefühl, die Zeile unmittelbar vor der Fehlermeldung wäre aufschlussreich. – sarnold
Es ist auch manchmal nützlich, 'make -n' zu versuchen, da dies nur zeigt, welche Befehle make ausführen möchte. – mgilson