Momentan versuche ich Binärdateien für das AT91SAM7S256 mit SEGGER zu kompilieren, und ich habe ein Problem in der Linking-Phase (Quelldateien alle kompilieren) wo jede Datei, die verwendet von "lib_AT91SAM7S64.h" hat mehrere undefinierte Referenzen beim Versuch, eine Verknüpfung herzustellen.Fehler beim Verlinken: Undefinierter Verweis auf Funktion
Hier ist ein Beispiel für einige der Fehlermeldungen:
Output/Executable_1 Debug/Obj/AdcInterface.o: In function `initializeADCInterface':
undefined reference to `AT91F_PIO_CfgInput'
undefined reference to `AT91F_PIO_InterruptEnable'
undefined reference to `AT91F_PIO_GetInterruptStatus'
Die Sache ist, dass diese Funktionen „undefiniert“ that're innerhalb der „lib_AT91SAM7S64.h“ Datei definiert sind. Ich weiß nicht, was ich tun soll, da ich während der Verbindungsphase nie Fehler bekommen habe.
Ich benutze keine Makefiles oder irgendetwas. Dieses Projekt wurde ursprünglich mit Green Hills Software entwickelt, kompiliert und baut jedoch ohne Probleme auf dieser IDE. Ich habe jedoch keinen Zugang zu Green Hills Software und habe versucht, SEGGER dazu zu bringen, dies zu kompilieren.
Die Funktionen könnten _declared_ in der .h-Datei sein, aber sie sind nicht _defined_ in der .h-Datei. Wie geben Sie die Bibliotheksdatei in den Projekteigenschaften oder in der Befehlszeile an? – kkrambo
Sind sie wirklich _defined_ in der Kopfzeile - dh eine statische Inline-Implementierung - oder nur _declared_, denn ohne weitere Details sieht es einfach wie Ihre typische "vergessen, eine externe Bibliothek an den Linker zu übergeben" oder "interdependenten Objekte in der falschen Reihenfolge zu verknüpfen" Problem, die genau die Art von Dingen sind, die sich zwischen verschiedenen IDE-generierten Build-Befehlen unterscheiden können. – Notlikethat
Danke, Notlikethat. Wie sich herausstellte, gab es einige Deklarationsprobleme in der Header-Datei. "__inline" wurde verwendet, daher habe ich am Anfang der Datei "#define __inline static inline" eine Definition hinzugefügt und die Probleme, die mit den nicht definierten Funktionen zusammenhängen, verschwanden. –