Zainstalowałem SOCI:
http://soci.sourceforge.net/doc/installation.html#unix za pomocą komend:
$ mkdir build
$ cd build
$ cmake cmake -G "Unix Makefiles" -DWITH_BOOST=ON -DWITH_POSTGRESQL=ON ../
$ make
$ make install
Mam prościutki program:
#include "soci-postgresql.h"
int main(int argc, char **argv){
soci::session sql(postgresql, "testDB");
return 0;
}
Kompiluję na różne sposoby:
- g++ test.cpp -lsoci_core -lsoci_postgresql -ldl -lpq
- g++ test.cpp -L/usr/local/lib -lsoci_core -lsoci_postgresql -ldl -lpq
- g++ test.cpp -lsoci_core -lsoci_postgresql -ldl -lpq -I /usr/local/include/soci
to daje mi błędy:
test.cpp:1:29: fatal error: soci-postgresql.h: No such file or directory compilation terminated
Kompiluję więc tak:
g++ test.cpp -lsoci_core -lsoci_postgresql -ldl -lpq -I /usr/local/include/soci/postgresql
i dostaję błąd:
g++ test.cpp -lsoci_core -lsoci_postgresql -ldl -lpq -I /usr/local/include/soci/postgresql In file included from test.cpp:1:0: /usr/local/include/soci/postgresql/soci-postgresql.h:27:26: fatal error: soci-backend.h: No such file or directory compilation terminated.
Co robić? Muszę napisać programa używającego bazy postgreSQL w C++, a to SOCI jest tu świetnym rozwiązaniem; "jedynie" kiszka z kompilacją:/
System to Xubuntu 11.04