Buongiorno a tutti.
Ho deciso di mettere in pratica un po' la mia teoria di C++ e quindi mi sono messo ad interrogare un db mysql che ho in locale.
Ecco i passi che ho seguito:

1) installare libmysql++-dev
2) importare nel sorgente la libreria <mysql/mysql.h>

Fino a qui tutto sotto controllo.
Ho copiato dalla rete un piccolo script:

codice:
#include <iostream>
#include <mysql/mysql.h>
using namespace std;

const char* host = "localhost"; // host di connessione
const char* database = "nux";  // database di connessione
const char* db_user = "root"; // nome utente per la connessione
const char* db_pass = ""; // password non cifrata
	
int main()
{
	MYSQL mysql;

	// restituisce NULL se non avviene con successo
	if (!mysql_init(&mysql)) 
		cout << "Errore nella allocazione di memoria." << endl;

	if (!mysql_real_connect(&mysql, host, db_user, db_pass, "",0, NULL, 0)) 
		cout << "Errore nella connessione." << endl;

	// restituisce zero se avviene con successo
	if (mysql_select_db (&mysql, database))
		cout << "Errore nella selezione del database." << endl;

	// chiude le risorse
	mysql_close (&mysql);
}
Il codice è del tutto logicamente sbagliato; l'ho abbozzato solo per controllare eventuali errori in fase di compilazione. E infatti ottengo questo:

codice:
/tmp/ccYxNiDH.o: In function `main':
test.cpp: (.text+0x85): undefined reference to `mysql_init'
test.cpp: (.text+0xfd): undefined reference to `mysql_real_connect'
test.cpp: (.text+0x141): undefined reference to `mysql_select_db'
test.cpp: (.text+0x1a0): undefined reference to `mysql_close'
collect2: ld returned 1 exit status
Sapreste spiegarmi il motivo? Dite che sto usando codice obsoleto? :berto:
Vi ringrazio in anticipo!!!