Allgemeine Frage zu: ld cannot find -l<Library>

Antworten
soerensen3
Beiträge: 104
Registriert: Fr 22. Jun 2012, 01:51
OS, Lazarus, FPC: Fedora-Linux 23 (Korora) Lazarus 1.6 FPC 3.0
CPU-Target: 64Bit
Wohnort: Bonn

Allgemeine Frage zu: ld cannot find -l<Library>

Beitrag von soerensen3 »

Hallo,

ich probiere im Moment SDL2 mit dem Header von Tim Blume aus.
Die Unit sdl2_image bindet unter Linux die Datei "libSDL_image-2.so" ein.
Zumindest bei meinem Arch Linux heißt die anders, ist aber alles kein Problem wenn man einen zusätzlichen symlink macht oder den Header ändert.
Was mich irritiert ist aber die Fehlermeldung vom Linker:
/usr/bin/ld: cannot find -lSDL_image-2
warum ist der Name da immer anders als der eigentliche Name der unit? Und wie kommt der zustande?

Benutzeravatar
theo
Beiträge: 10499
Registriert: Mo 11. Sep 2006, 19:01

Re: Allgemeine Frage zu: ld cannot find -l<Library>

Beitrag von theo »

Afaik ist das einfach so.
ld geht davon aus, dass die Library immer lib*.a oder lib*.so heisst.
Deshalb muss man nur MyLib statt libMyLib.a angeben.

"-l" ist eine ld Option, siehe -larchive http://linux.about.com/library/cmd/blcmdl1_ld.htm

Bin keine Experte, glaube aber dass das so richtig ist.

soerensen3
Beiträge: 104
Registriert: Fr 22. Jun 2012, 01:51
OS, Lazarus, FPC: Fedora-Linux 23 (Korora) Lazarus 1.6 FPC 3.0
CPU-Target: 64Bit
Wohnort: Bonn

Re: Allgemeine Frage zu: ld cannot find -l<Library>

Beitrag von soerensen3 »

Ok, dass klingt logisch. Vielen dank für deine Antwort!

Antworten