Heute musste ich um einen Fehler ausschließen zu können ein Programm unter Ubuntu 11.10 Compilieren, das Ding verwendet die MySQL C-API recht häufig und beim ersten Versuch habe ich nur jede Menge Fehlermeldungen erhalten:
/tmp/ccx4v7xL.o: In function `checkAuftrag()‘:
auftrag_details1.c:(.text+0x8a): undefined reference to `mysql_query‘
auftrag_details1.c:(.text+0x9c): undefined reference to `mysql_use_result‘
auftrag_details1.c:(.text+0xad): undefined reference to `mysql_fetch_row‘
auftrag_details1.c:(.text+0x302): undefined reference to `mysql_free_result‘
auftrag_details1.c:(.text+0x3eb): undefined reference to `mysql_error‘
Nachdem ich alles Mögliche überprüft habe – Header Dateien installiert, Pfade korrekt gesetzt usw. – habe ich eine Lösung für das Problem gefunden!
Der ursprüngliche Compile Aufruf lautete wie folgt:
g++ -O2 -Wall -lmysqlclient -L/usr/lib/mysql -fPIC -DHAVE_CONFIG_H -I. -I/usr/local/include -I/usr/include/mysql -o auftrag_details1.cgi auftrag_details1.c
Und lieferte die Fehlermeldung von oben, wenn man jetzt einfach nur den Teil mit „-lmysqlclient“ raus nimmt und ganz ans Ende setzt, dann läuft der Compile wieder wie am Schnürchen!
g++ -O2 -Wall -L/usr/lib/mysql -fPIC -DHAVE_CONFIG_H -I. -I/usr/local/include -I/usr/include/mysql -o auftrag_details1.cgi auftrag_details1.c -lmysqlclient
Und schon ist das Programm fertig compiliert…!
Man macht es nicht jeden Tag, darum schadet es nicht sich's kurz zu notieren... Hier…
Meine Suche bei Google hatte mal wieder keinen vernünftigen Treffer gelandet, das Problem - ich…
Ich muss mal eben etwas Druck ablassen, ein Kunde von mir setzt einen Drucker von…
Wer beim Server bestellen vergessen hat die erweiterte IRMC Lizenz zu ordern, der steht vor…
Ich nutze seit langer Zeit ein System für meine Backups welches in der Nacht von…
Es scheint wohl eine noch nicht so häufig genutzte Kombination zu sein - Apache Guacamole…