PDA

View Full Version : [C++] Problemi con delle librerie non visibili in sottodirectory di un progetto


fbcyborg
20-12-2011, 14:47
Salve a tutti,

sto scrivendo un progettino in C++, usando Eclipse, ma essendo agli inizi con questo linguaggio, ho qualche problema con la visibilità di alcune librerie esterne che ho importato.
Le librerie esterne che sto usando sono queste: MySQL Connector/C++ (http://dev.mysql.com/downloads/connector/cpp/1.0.html). Inoltre sto prendendo come esempio questo: Developing Database Applications Using MySQL Connector/C++ (http://dev.mysql.com/tech-resources/articles/mysql-connector-cpp.html).

Il progetto ha la seguente struttura:

.
|-- main.cpp
|-- dir1
| |-- Class1.cpp
| `-- Class1.h
|-- dir2
| |-- Class2.cpp
| `-- Class2.h
|-- include
| |-- cppconn
| | |-- build_config.h
| | |-- config.h
| | |-- connection.h
| | |-- datatype.h
| | |-- driver.h
| | |-- exception.h
| | |-- metadata.h
| | |-- parameter_metadata.h
| | |-- prepared_statement.h
| | |-- resultset.h
| | |-- resultset_metadata.h
| | |-- sqlstring.h
| | |-- statement.h
| | `-- warning.h
| |-- mysql_connection.h
| `-- mysql_driver.h
`-- lib
|-- libmysqlcppconn.so -> libmysqlcppconn.so.5
|-- libmysqlcppconn.so.5 -> libmysqlcppconn.so.5.1.1.0
|-- libmysqlcppconn.so.5.1.1.0
`-- libmysqlcppconn-static.a

Le directory include e lib sono prese direttamente dal file mysql-connector-c++-1.1.0-linux-glibc2.3-x86-64bit.tar.gz scaricato dal sito.

Come indicato nella guida che ho citato sopra, per usare le varie classi come Connection, ho bisogno di includere le seguenti librerie:

/* MySQL Connector/C++ specific headers */
#include <driver.h>
#include <connection.h>
#include <statement.h>
#include <prepared_statement.h>
#include <resultset.h>
#include <metadata.h>
#include <resultset_metadata.h>
#include <exception.h>
#include <warning.h>

Il problema è che se faccio questi #include nel file main.cpp non ci sono problemi, ma se li inserisco in Class1.cpp/h o in Class2.cpp/h ho un errore, ovvero non riesce a risolverli.

Non capisco se sbaglio qualcosa nel setup del progetto oppure se c'è qualche errore altrove. In Java basta aggiungere tali librerie al classpath, ma qui non so come fare.

Qualcuno può aiutarmi?

EDIT: come non detto ho risolto. Grazie lo stesso.