Forum: Compiler & IDEs Linker funktioniert nicht richtig?


von nic (Gast)


Lesenswert?

Hallo miteinander,

ich hab ein kleines Problem bei meinem Projekt. Ich versuche gerade 
µC-OS ii auf den MPC5567 zu portieren. Ich habe jetzt beim kompilieren 
ein kleines Problem. Wenn ich kompiliere bekomm ich beim Linken 
folgenden Fehler:
1
main.c(18,1): undefined reference to `startAPP'

Ich habe folgende Konstellation:

main.c:
1
#include "includes.h"
2
#include "app.h"
3
4
int main(void) {
5
...
6
7
startAPP();
8
9
...
10
}


app.c:
1
#include "includes.h"
2
#include "app.h"
3
4
void startAPP(void) {
5
...
6
}

app.h:
1
#ifndef __APP_H__
2
#define __APP_H__
3
4
void startAPP(void);
5
#endif

Eigentlich müsste main.c doch die Funktion startAPP kennen. Aber 
irgendwie funktioniert das nicht wirklich.

Hier noch die Optionen vom

Compiler:
1
$(EDNAME) -gdwarf-2 -c -mno-sdata -Wall

Assembler:
1
$(EDNAME) --gdwarf2 -mregnames  -me500x2 -o $(NOEXT).o

Linker:
1
-nostartfiles -Xlinker --output=$(OUTPUTFILE) -Xlinker -Map=sample.map -Xlinker --script=$(INDPATH) -Xlinker -n -lgcc -lg  -lc -lm

von Klaus W. (mfgkw)


Lesenswert?

und wie sieht der KOMPLETTE Aufruf des Linkers aus?
(Wahrscheinlich fehlt dort app.o)

von nic (Gast)


Angehängte Dateien:

Lesenswert?

Das kann ich einstellen...

Müsste er die compilierten Object-Files nicht automatisch dazu linken?

von Rolf Magnus (Gast)


Lesenswert?

Mit "der KOMPLETTE Aufruf" ist der KOMPLETTE Aufruf gemeint, also die 
Kommandozeile, mit der der Linker dann aufgerufen wird.
Vielleicht hilft ein Klick auf den Knopf "Link Order..." und dann dafür 
sorgen, daß main.c vor app.c kommt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.