Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » GNU/Linux » Bibliotheken unter Linux

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
24.03.2005, 16:29 Uhr
~Christoph R
Gast


Hallo!

Ich hoffe ich bin mit meiner Frage in diesem Forum richtig.

Habe 2 Fragen zum g++ und Bibliotheken:

1) Wenn ich mit der Option -l eine Bibliothek angebe die gelinkt werden soll, woher weiß der Compiler dann welche Datei ich damit meine? Unter Windows gibt man dem Linker die genauen Dateinamen und Pfade an. Unter Linux habe ich aber gerade ein Beispiel für die SDL-Bibliothek ausprobiert: Da gibt man zwar die Option "-l SDL" an, eine Datei mit dem Namen SDL habe ich unter /usr/lib nicht gefunden (und auch in sonst keinem Verzeichnis). Bei der Mesa-Bibliothek ist es auch so: man gibt "-l MesaGL" an, es gibt aber keine Datei mit diesem Namen.

2) Wie compiliere ich selbst (statische) Bibliotheken, die ich dann ich anderen Programmen verwenden kann?
Gibt es unter Linux auch so etwas wie DLLs unter Windows?

Danke schonmal!

mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
24.03.2005, 16:56 Uhr
typecast
aka loddab
(Operator)


1.)

Wenn du -lSDL angbist, dann sucht der Kompilier nach der Datei libSDL.so oder libSDL.a (das erste ist fuer dynamisches Linken, das zweite fuer statisches Linken).

2.)
Angenommen du moechtest eine lib aus der Datei test.c erzeugen, dann machst du folgendes:


Code:
# fuer eine statische Lib
gcc -c test.c
ar r libtest.a test.o
ranlib libtest.a

# fuer eine dynamische Lib
gcc -c test.c
ld -shared -soname libtest.so -o libtest.so test.o



Die .so-Bibliotheken entsprechen den DLLs, die du von Windows kennst.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.03.2005, 17:41 Uhr
Pablo
Supertux
(Operator)


Junge Christoph, du hast aber keine Gedulg. www.c-plusplus.de/forum/viewtopic-var-t-is-104968.html
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.03.2005, 19:32 Uhr
0xdeadbeef
Gott
(Operator)


Der Linker sucht nach Bibliotheken 1. in /lib und /usr/lib, 2. in den Verzeichnissen, die in der /etc/ld.so.conf stehen, 3. in den Pfaden, die in $LD_LIBRARY_PATH stehen und 4. in den Verzeichnissen, die ihm an der Kommandozeile per -L /pfad/zum/verzeichnis mitgegeben wurden. Nicht notwendigerweise in der Reihenfolge, für die ganz genaue Info lies die manpage.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ GNU/Linux ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: