Skouším programovat v C s mysql. a při překladu následujícího programu my to vypíše tento error. Neví náhodou někdo, kde je chyba:
gcc ./pokus.c -lmysqlclient
/tmp/ccN3d8ls.o(.text+0x46): In function `main':
: undefined reference to `mysql_connect'
collect2: ld returned 1 exit status
výpis programu:
#include
#include "mysql.h"
int main(void){
MYSQL mysql;
MYSQL_RES *mysql_res;
MYSQL_ROW row;
int result;
unsigned int num_fields = 3;
unsigned int i,res;
mysql_init(&mysql);
if(mysql_connect(&mysql,"localhost","pavel","pavel")){
printf("Host pripojen\n");
if(!mysql_select_db(&mysql,"test")){
printf("DB pripojena\n");
if(!mysql_query(&mysql,"SELECT * FROM pokus")){
printf("Dotaz byl zodpovezen\n");
mysql_res = mysql_store_result(&mysql);
while (row = mysql_fetch_row(mysql_res)){
unsigned long *lengths;
lengths = mysql_fetch_lengths(mysql_res);
for(i = 0; i < num_fields; i++)
{
printf("%s .. ", row[i]);
}
printf("\n");
}
}
else{
printf("Chyba ve zpracovani dotazu\n");
}
}
else{
printf("DB Nepripojena\n");
}
mysql_close(&mysql);
}
else{
printf("Nepodarilo se\n");
}
return 1;
}
Dík moc.
[Když ten kód vložíš takhle (bez PRE), tak můžeš těžko čekat, že to bude někdo číst...]
mysql_connect() je deprecated funkce, všude se doporučuje používat mysql_real_connect(). Nevím nicméně o tom, že by už ji v nějaké verzi zrušili -- v 4.0 stále je. Mně se ten tvůj příklad normálně slinkuje.
MySQL-client-4.0.11a-5mdk
MySQL-4.0.11a-5mdk
MySQL-common-4.0.11a-5mdk
koukal jsem do google a nasel jsem ze je potreba pridat jeste option -lz ale to mi taky nepomohlo
zkátka tam už mysql_connect() nemáte, musíte použít mysql_real_connect()
aby byla k disposici, muselo by se mysql kompilovat s -DUSE_OLD_FUNCTIONS, což zjevně mdk nedělá