Forum: Compiler & IDEs Libraries im Makefile


von Phozz (Gast)


Lesenswert?

Hey, folgendes Problem, wenn ich im Makefile noch auf ne zusätzliche
Library verweise mit LIB = ..\lib\gggt.c dann wird diese nicht mit
eingebunden wie es sein sollte. wo ist das problem ? die gggt.c liegt
da wo sie sein sollte, alles wunderbar, nur auftauchen tut sie nicht
beim compilen.

Gruß, Phozz

von Rufus T. Firefly (Gast)


Lesenswert?

Seit wann ist .c die Dateinamenserweiterung von Libraries?

von Phozz (Gast)


Lesenswert?

ich hatte das mal in ner andren demo-makefile so drinstehn. aber das
sollte doch eigentlich egal sein wo die funktionen definiert sind.

von Rufus T. Firefly (Gast)


Lesenswert?

Nö, genau das ist es nicht. Wenn Deine zusätzlichen Funktionen einfach
in einem zweiten Sourcefile drinstehen, dann musst Du das so behandeln
wie ein zweites Sourcefile.

von Matthias (Gast)


Lesenswert?

Hi

das was du der Variablen LIB zuweißt wird höchstwahrscheinlich beim
Linken dem Compiler übergeben. Da steht dann also sowas wie

$(LD) $(LDFLAGS) -o$(BIN).elf $^ -l$(LIB)

Der (GNU)Linker kann aber nichts mit C-Dateien anfangen. Der braucht
entweder *.o oder eben Bibliotheken (*.a) die er dann per -l bekommt.
Du machst also mit dem GCC aus deiner *.c eine *.o (gcc -c ... gggt.c)
eine Objektdatei ggt.o. Aus dieser dann mit dem Libtool AR eine
Bibliothek (gggt.a). Und genau diese übergibst du dann mit der
LIB-Variablen an den Linker.

Matthias

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.