News:

è disponibile So.Di.Linux 2025, distro italiana per la scuola basata su mint mate 20 >>> clicca qui

Menu principale

[RISOLTO] compilare mariadb in 'C'

Aperto da vrn, Mercoledì 14 Gennaio 2015, 18:51:32

Discussione precedente - Discussione successiva

vrn

Un saluto a tutti dopo vari mesi senza farmi sentire.
Sto provando mariadb su mint17 xfce.
Gli applicativi che avevo in LAMP su Debian funzionano.
Non riesco a compliare in C.
Ho gia' cercato in rete e non ho trovato la soluzione.

Questo e' il programma (minimale)
#include <my_global.h>
#include <mysql.h>

int main(int argc, char **argv)
{
  printf("MySQL client version: %s\n", mysql_get_client_info());

  exit(0);
}

Questa e' la stringa di compilazione
gcc -o a01_version.x a01_version.c \
     -std=gnu99 \
     -pedantic \
     -Wall \
     -Wno-deprecated-declarations \
     -I/usr/include/mysql \
     -L/usr/lib/i386-linux-gnu \
     -lmariadbclient \
     -lm \
     -lrt


Questo e' l'errore
/usr/bin/ld: /usr/lib/i386-linux-gnu/libmariadbclient.a(my_thr_init.c.o): undefined reference to symbol 'pthread_create@@GLIBC_2.1'
//lib/i386-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status


Vista l'attuale licenza non vorrei tornare a mysql.
Ringrazio fin d'ora chi vorra' aiutarmi.

Ciao.


Metelliano

Non ci capisco una mazza  ;D, ma sembra che gcc debba essere linkato alla libreria libphtread  :boh:
Forse devi dichiarare qualcosa che ha a che fare con phtread?

Nella propria vita un uomo è tale solo per pochi istanti.

vrn

Grazie, rispondo solo adesso perche' ero andato a cena.

Aggiungere
-lpthread
e' stato uno dei primi tentativi che ho fatto.
Viene giu' il mondo perche' non trova la ssl
aggiungendo anche
-lssl
si ritorna alla situazione iniziale.

Bisogna anche fare attenzione alla sequenza con la quale le librerie vengono proposte.
Quella che ho utilizzato mi sembra la migliore.

Continuo a cercare anch'io.

Ciao.

vrn

Non e' stato immediato, ma ho compilato.

Questa e' la stringa funzionante

gcc \
     -std=gnu99 \
     -pedantic \
     -Wall \
     -Wno-deprecated-declarations \
     -o a01_version.x \
      a01_version.c \
     -I/usr/include/mysql \
     -L/usr/lib/i386-linux-gnu \
     -lmariadbclient \
     -lrt \
     -lpthread \
     -lssl \
     -lcrypto \
     -ldl \
     -lz \
     -lm


Ciao e grazie
:good: