<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>