2016-10-16 3 views
0

Ich versuche ein Programm zu kompilieren, das die HDF4-Bibliotheken verwendet. Ich habe HDF4 auf meinem Computer installiert in/usr/local/und ich habe bestätigt, dass alle notwendigen Skripte, Include-Dateien und Bibliotheken installiert wurden und dass alle Umgebungsvariablen korrekt eingestellt sind. Ich habe ein Makefile erstellt, das meine beiden C-Dateien in Objektdateien kompiliert und dann miteinander verknüpft. Wenn ich die erste C-Datei "readHDFfuncs.c" kompiliere, sagt mir der Compiler, dass alle aufgerufenen HDF4-Funktionen nicht deklariert wurden. Dies sollte nicht passieren, weil mein h4cc-Compiler das richtige Verzeichnis korrekt enthält.Fehler mit Include-Dateien beim Versuch, HDF4-Programm zu kompilieren

Ich habe die h4cc-Befehle auf -echo gesetzt und die Kompilierungsausführung verfolgt. Alles scheint korrekt zu sein, aber aus irgendeinem Grund kommen die Funktionsdeklarationen nicht durch. h4cc ist ein GCC-Wrapper, dessen Hauptfunktion darin besteht, Include-Pfade zu behandeln.

Ich habe einen GitHub erstellt, um Ihnen die Dateien zu zeigen.

https://github.com/LandonClipp/HDFhelp/tree/master

Eingeschlossen ist die Ausgabe von meinem Befehl make (was, denken Sie daran, für h4cc die -echo Option beinhaltet), das Makefile selbst, meine zwei C-Dateien, eine Header-Datei und der Inhalt meiner umfassen Verzeichnis. Ich hasse es wirklich, all das auf Leute fallen zu lassen und nach einer Lösung zu fragen, aber ich habe viel Zeit damit verbracht, das herauszufinden und ich würde es sehr schätzen, wenn jemand auf etwas hinweisen könnte, was er sieht. Vielen Dank!

Antwort

0

Haben Sie versucht, -I auf die Dateipfade in Ihrem Makefile vor? Dies ist beim Import von Verzeichnissen notwendig. Obwohl es auch andere Probleme geben könnte.

So sind die zweite und dritte Zeile in Ihrem Make-Datei würde:

INCLUDE=-I/usr/local/hdf-4.2.12/hdf4/include 
LIB=-I/usr/local/hdf4.2.12/hdf4/lib 

Siehe https://www.gnu.org/software/make/manual/make.html#Flavors für die Dokumentation.

Verwandte Themen