--EuxKj2iCbKjpUGkD
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On 12.Feb 2003 - 11:41:14, Frederik wrote:
> > also ich mach das so:
> >=20
> > gcc -lm ProgrammName.c
> das war eigentlich nicht meine Frage.
> ich wollte vielmehr wissen, warum "-lm" f=FCr math.h steht bzw. wo ich es
> h=E4tte herausfinden k=F6nnen, wenn ich es nicht gewu=DFt h=E4tte!?

-lm steht aber nicht f=FCr math.h, sondern f=FCr die libm.so.x.x, -l ist ein
Compilerschalter der die angegebene Library miteinbindet (ohne das lib
und die Endung). math.h ist eine Header-Datei die die Funktionsr=FCmpfe
der in libm.so enthaltenen Funktionen bereitstellt. Du solltest f=FCr
sowas mal ein wenig nachlesen wie das bei C/C++ mit Libraries
funktioniert. Wenn Programm X die Funktionen aus Library Y benutzen
will, muss in den Quelldateien von X die Headerdatei(en) von Y mit
angegeben werden - damit der Compiler wei=DF wie die Funktionen aussehen
die in X benutzt werden (und in Y definiert sind). Beim sog. Linken
braucht dann der Linker nicht mehr nur die Info wie die Funktionen
aussehen sondern die Funktionen selbst, deswegen muss man ihm sagen in
welche Library sie stehen (-lY z.B.).

> Bei solchen Standard-Sachen wie math.h ist es ja noch recht schnell
> irgendwo in Bspen zu finden.
>=20
> Was ich meine ist, dass es doch irgendetwas geben muss, dass der Linker
> einem verr=E4t, was er mit welchen Abk=FCrzungen verlinkt!?

Wie oben bereits gesagt, ein Schalte der Form -lXXX wird vom Linker
expandiert zu libXXX.so.(Version). Dann kannst du gucken ob diese Datei
in den Librarypfaden enthalten ist (i.A. /usr/lib, /lib, evtl. noch
/usr/local/lib) bzw. ob er beim Linken -L/pfad/zur/lib hat. Wenn dort
nirgendwo eine entsprechende Datei ist, musst du mal schauen zu welchem
Paket sie geh=F6rt. Zu diesem Paket gibts dann sicher auch ein -dev Paket
das die Header enth=E4lt.

> Oder zu meinem konkreten Problem:=20
> Scheitert ein ./configure bei g++ -lqt-mt; m=F6chte ich nat=FCrlich gerne
> m=F6glichst schnell und unkompliziert wissen, was ihm genau fehlt.

Mach ich immer so: locate qt-mt. Wenn Ergebnis leer -> apt-cache search
qt-mt,  und -dev Library mit installieren. Wenn Ergebnis von locate
nicht leer -> Pr=FCfen der Librarypfade und evtl. ldconfig ausf=FChren.

Andreas

--=20
Wie man sein Kind nicht nennen sollte:=20
  Al Gebra=20

--EuxKj2iCbKjpUGkD
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.0 (GNU/Linux)

iD8DBQE+SkCHEeTwtO5zjFYRAp5yAJ4lgGxtvWzw8vp5xe4oos85FpPRwACfVVDc
VxPnZBJG0AymORvkGS6oBFU=
=zXNh
-----END PGP SIGNATURE-----

--EuxKj2iCbKjpUGkD--


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)




Antwort per Email an