Zainteresowałem się dziś biblioteką obsługującą bazę danych MyQSL w C++ o nazwie SOCI. Pracując pod Linuksem zabrałem się do kompilacji za pomocą CMake z flagą do obsługi MySQL tak jak zostało to zawarte w dokumentacji. Proces odbył się bez żadnego błędu. Dorzuciłem do wszystkiego biblioteki od mysql [libmysqlclient itd.] oraz libosci-mysql-gcc. Próbny kod sprawdzający działanie SOCI wygląda tak:
#include <iostream>
#include <soci.h>
#include <mysql/soci-mysql.h>
#include <exception>
using namespace std;
using namespace soci;
int main()
{
try
{
session sql(mysql, "db=baza user=gienek password='trol'");
}
catch(mysql_soci_error const &e)
{
cerr << "mysql error: " << e.err_num_
<< " " << e.what() << endl;
}
catch(exception const &e)
{
cerr << "other error: " << e.what() << endl;
}
return 0;
}
Kod próbuję skompilować za pomocą poniższego polecenia:
g++ main.cpp -lsoci_core -ldl -lsoci_mysql -lmysqlclient -I /usr/include/soci -I /usr/include/mysql -o trololo
Błąd jaki otrzymuję:
/usr/bin/ld: cannot find -lsoci_mysql
collect2: error: ld returned 1 exit status
Nie jestem w stanie stwierdzić co jest nie tak. Oczywiście widzę, że problem jest z -lsoci_mysql, jednak przetrząsnąłem trochę internetów i nie znalazłem rozwiązania.
Any ideas?