Salve,

sto cercando di far funzionare l'esempio riportato a questo indirizzo, dopo aver scaricato il plugin, da qui ma non riesco a farlo funzionare.

Il file che sto cercando di compilare è questo ma ho cambiato gli include, come segue, e per i motivi che sto per elencare non va.:

codice:
/* MySQL Connector/C++ specific headers */
#include "include/cppconn/driver.h"
#include "include/cppconn/connection.h"
#include "include/cppconn/statement.h"
#include "include/cppconn/prepared_statement.h"
#include "include/cppconn/resultset.h"
#include "include/cppconn/metadata.h"
#include "include/cppconn/resultset_metadata.h"
#include "include/cppconn/exception.h"
#include "include/cppconn/warning.h"
Sto cercando di compilare quel file sorgente in un progetto creato con Eclipse. Nella root del progetto ho copiato le directory lib e include, ma quando tento di compilare il file allegato, ho subito un errore alla riga 165:
undefined reference to `get_driver_instance'

poi un'altro alla riga 190
Invalid arguments 'Candidates are: sql::ResultSet * executeQuery(const ? & )'

Poi altri errori simili alla riga 207, 215 e 229.

A quanto vedo, non riconosce le funzioni chiamate, nonostante gli include che ho fatto all'inizio, ma allora non capisco dove sbaglio.

Ma c'è di più. Se vado a "ispezionare" il codice del file mysql_driver.h incluso nel tar.gz scaricato dal sito, c'è un'errore alla riga 50:
Symbol 'scoped_ptr' could not be resolved

ma anche nel file mysql_connection.h alla riga 156
Symbol 'shared_ptr' could not be resolved

Perché non funziona? Ho dimenticato qualche passaggio prima di usare il connector?


EDIT1: nel frattempo ho fatto qualche altra prova, e credo di aver capito qual'è il problema.
Gli errori di sopra li ho risolti installando mysql-connector-c++ tramite il package manager di Gentoo Linux, ed ora ho potuto riscrivere tutti gli include come nel file originario, però c'è ancora un problema: non mi vede il namespace sql.

EDIT2:: ho anteposto la scritta "using namespace sql;" alla scritta "using namespace std;", però l'errore alla riga 165 che ho riportato poco fa, ancora persiste.

EDIT3:: OK, risolto. Bisognava linkare al progetto anche questo:
/usr/lib64/libmysqlcppconn.so. Fonte.

Spero che possa essere utile a qualche altro utente.