[gcc/g++, automake, kdevelop] Probleme beim einbinden von Bibliotheken

Erstmal hallo an alle und Sorry, falls ich mich doch fuer das Falsche Forum entschieden hab. Ich konnt mich nicht zwischen Anwendungen und Programming entscheiden - bei bedarf bitte einfach verschieben.

Also zu meinem Problem:
Ich versuch in ner Source die mysql++ Libs einzubinden. Meine configure und makefiles lass ich mir von Kdevelop (V 3.3.5) erstellen.

Folgendermassen sieht es bisher aus:

Im Code:
#include <mysql++.h>

Configure options (ueber Kdevelop)
CPPFLAGS:
-I/usr/include/mysql -I/usr/include/mysql++ -L/usr/lib/mysql -L/usr/local/lib/mysql++

LDFLAGS:
-L/usr/include/mysql -L/usr/include/mysql++

CXXFLAGS:
-I/usr/include/mysql -I/usr/include/mysql++

Fehlermeldung:
cd '/home/dave/bla/src' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake rofteks2
compiling bla.cpp (g++)
mv -f .deps/bla.Tpo .deps/bla.Po
linking bla (libtool)
linking bla (g++)
bla.o: In function `create_con()':
bla.cpp:(.text+0x31f2): undefined reference to `mysqlpp::Connection::Connection(bool)'
bla.cpp:(.text+0x3204): undefined reference to `mysqlpp::Connection::~Connection()'
collect2: ld returned 1 exit status
gmake: *** [bla] Error 1
*** Exited with status: 2 ***

die funktionen sollten - und sind auch - in den der lib zugehoerigen cpp files beschrieben sein, aber sie werden nicht weiter gefunden.

Jau bin dankbar um jede Hilfe, sollte ich zu bloed zum suchen gewesen sein, zerreist mich ruhig in der luft, dann hab ichs verdient.
 
Hallo,

du musst dem Linker auch noch die Bibliothek klar machen gegen die du linken willst. Das Verzeichnis in denen deine Bibliotheken lokalisiert sind mit dem -L switch anzugeben reicht nicht.

Deine LDFLAGS sollten demnach also auch noch ein -lmysql++, oder wie deine dementsprechende Bibliothek heißt, enthalten.
Die Namenskonvention für den -l Schalter lautet folgendermaßen:

Wenn es eine Datei namens libmysql++.so gibt, so musst du -lmysql++ angeben.

Siehe auch:
Code:
man gcc
# oder
man ld

Gruß,
RedWing
 
Zurück