Probleme beim Kompilieren: MySQL C-API + pthreads

Das Forum fĂĽr Programmierer und Systemadmins. Von Shell-, Perl- und PHP-Scripts bis zur objektorientierten Programmierung mit C++.

Probleme beim Kompilieren: MySQL C-API + pthreads

Beitragvon Michael74 » Di 04 Jun, 2002 09:29

<HTML>Hallo,

erst mal zu meiner Arbeitsumgebung: Ich nutze Linux von SuSE (Version 8.0) auf einem Pentium 200, RAM: 160MB, MySQL in der aktuelle Version 3.23.49
Ich habe ein Problem beim Kompilieren eines Programmes, dass ich selbst geschrieben habe. Es handelt sich um ein C-Programm, das Funktionen der C-API von MySQL nutzt. Das Hauptprogramm erzeugt einen 2. Thread (POSIX-Threads). Beide Threads teilen sich eine Verbindung zu einer mysql-Datenbank. Laut mysql-Manual (Kap 8.4.8 How to Make a Threaded Client) muss man solche Programme mit einer "thread-safe" client-library (mysqlclient_r) kompilieren.
Bisher (als ich noch keine Threads hatte) habe ich immer folgendermaĂźen kompiliert:

gcc -D_REENTRANT -o <programmname> <Liste von .c-Dateien> -L/usr/lib/mysql -lmysqlclient -lz -lpthread

Das hat auch immer geklappt, aber seit ich im 2. Thread die Funktionen mysql_thread_init() bzw. mysql_thread_end() eingefĂĽgt habe, bekomme ich Fehlermeldungen, z. B. undefined reference to 'mysql_thread_end'
Wenn ich dann beim Kompilieren statt "-lmysqlclient" nun "-lmysqlclient_r" angebe (was ja laut mysql-Manual die thread-safe library ist), bekomme ich die gleiche Fehlermeldung.
Auch eine De-Installation der von SuSE mitgelieferten Datenbank und die Installation der Source-Distribution (direkt von mysql heruntergeladen) hat keine Besserung gebracht.

Hat jemand Erfahrung damit? FĂĽr jeden Tip bin ich sehr dankbar!

MfG Michael Osterholt

</HTML>
Michael74
 

RE: Probleme beim Kompilieren: MySQL C-API + pthre

Beitragvon mad » Di 04 Jun, 2002 09:59

ich hab hier zwar "nur" eine 3.23.47 mysql, aber wenn man sich die symbols
in der libmysql_r.so anschaut (zb mit strings libmysql_r.so)
dann findet sich da kein mysql_thread_init und auch kein mysql_thread_end ...
(also kein wunder dass du da dann unresolved symbols dann hast)

lediglich ein my_thread_init und my_thread_end gibts ...
vielleicht einfach ein fehler in der doku?

mfg,
mad.
mad
 

RE: Probleme beim Kompilieren: MySQL C-API + pthre

Beitragvon Michael74 » Di 04 Jun, 2002 13:24

Hmmm, hab das mal ausprobiert (nur my_thread_end usw.) und hatte dann auch keine Fehler mehr. Wenn das alles wahr: grrrr, deswegen der ganze Aerger! Bin grade dabei, Linux neu zu installieren, hab mir bei der ganzen Sache ein paar Dateien zerschossen...

Erstmal Vielen Dank

MfG Michael
Michael74
 


ZurĂĽck zu PROGRAMMIER FORUM

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 38 Gäste