MySQL Connector - Einbindung

Schnelle objektorientierte, kompilierende Programmiersprache.
nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: CMake Fehlermeldung

Beitrag von nufan » Di Aug 21, 2012 10:24 am

Irgendwie ist die ganze Diskussion für mich ziemlich verwirrend...
Kmitska hat geschrieben:Hier steht nun, dass ich CMake benutzen muss und habe anschließend das folgende Packet runtergeladen:
sudo apt-get install cmake
Hm... ok, du verwendest Ubuntu oder zumindest irgendwas deb-basiertes.
Kmitska hat geschrieben:Nun weiß ich aber nicht, was was ist, ich habe dieses Packet hier runtergeladen:
http://dev.mysql.com/downloads/connecto ... #downloads
Was hast du in der Combobox ausgewählt? Ubuntu? Debian? Linux Generic? Oder gar was anderes?!

Du solltest mal ein paar Dinge klarstellen:
1) Wozu brauchst du MySQL? (Vielleicht ist SQLite doch die besser Wahl)
2) Auf welchem Betriebssystem entwickelst du?
3) Welche Datei hast du heruntergeladen?
4) Was hast du damit gemacht?
5) Welchen Code versuchst du zu kompilieren? (möglichst kurz)
6) Wie versuchst du zu kompilieren?
7) Welche Fehlermeldungen bekommst du?

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: CMake Fehlermeldung

Beitrag von Xin » Di Aug 21, 2012 10:25 am

Kmitska hat geschrieben:Und wenn ich die Beschreibung oben lese ist das ja Binary?
<stirnklatsch>
Kmitska hat geschrieben:Kenne mich jetzt da nicht aus, aber in dem Ordner sind die Verzeichnisse "lib" und "include".
Was ist jetzt was und was soll ich machen?
Jetzt solltest Du das C-Tutorial lesen. :-)

Und wenn Du es durch hast, kannst Du zum einen besser C und hast auch die Antwort auf Deine Frage, sie steht dort nämlich ausführlich beschrieben. :-)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Re: CMake Fehlermeldung

Beitrag von Kmitska » Di Aug 21, 2012 11:40 am

Xin hat geschrieben:
Kmitska hat geschrieben:Und wenn ich die Beschreibung oben lese ist das ja Binary?
<stirnklatsch>
Kmitska hat geschrieben:Kenne mich jetzt da nicht aus, aber in dem Ordner sind die Verzeichnisse "lib" und "include".
Was ist jetzt was und was soll ich machen?
Jetzt solltest Du das C-Tutorial lesen. :-)

Und wenn Du es durch hast, kannst Du zum einen besser C und hast auch die Antwort auf Deine Frage, sie steht dort nämlich ausführlich beschrieben. :-)
Dir muss ich nun wirklich DANKE sagen! :D
Deine Nachrichten mit geheimen Botschaften haben mich weiter gebracht.

Also, das ganze war doch nicht so kompliziert, wie ich's mir vorgestellt habe.
Musste nur die Verzeichnisse vom /boost und /connector meinem IDE mitteilen.

Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Re: CMake Fehlermeldung

Beitrag von Kmitska » Di Aug 21, 2012 1:08 pm

Bevor wir das Thema hier beende hätte ich da noch eine Frage.

Ich versuche dieses Beispiel hier zu kompillieren:
http://dev.mysql.com/doc/refman/5.1/en/ ... query.html

Und habe nun die beiden Verzeichnisse eingebunden:

Code: Alles auswählen

#include <mysql_connection.h>
#include <mysql_driver.h>
Doch bekomme diese Fehlermeldungen:
/home/yasin/Programming/C++/Projects/CarFinder/main.cpp|16|Fehler: falsche Benutzung des unvollständigen Typs »struct sql::Statement«|
/home/yasin/Programming/c++-connector/include/cppconn/connection.h|45|Fehler: Vorwärtsdeklaration von »struct sql::Statement«|
/home/yasin/Programming/C++/Projects/CarFinder/main.cpp|16|Fehler: expected »)« before »EXAMPLE_DB«|
/home/yasin/Programming/C++/Projects/CarFinder/main.cpp|17|Fehler: falsche Benutzung des unvollständigen Typs »struct sql::Statement«|
/home/yasin/Programming/c++-connector/include/cppconn/connection.h|45|Fehler: Vorwärtsdeklaration von »struct sql::Statement«|
/home/yasin/Programming/C++/Projects/CarFinder/main.cpp|18|Fehler: falsche Benutzung des unvollständigen Typs »struct sql::Statement«|
/home/yasin/Programming/c++-connector/include/cppconn/connection.h|45|Fehler: Vorwärtsdeklaration von »struct sql::Statement«|
/home/yasin/Programming/C++/Projects/CarFinder/main.cpp|19|Fehler: falsche Benutzung des unvollständigen Typs »struct sql::Statement«|
/home/yasin/Programming/c++-connector/include/cppconn/connection.h|45|Fehler: Vorwärtsdeklaration von »struct sql::Statement«|
/home/yasin/Programming/C++/Projects/CarFinder/main.cpp|21|Warnung: mögliches Problem bei Aufruf des »delete«-Operators erkannt [standardmäßig aktiviert]|
/home/yasin/Programming/C++/Projects/CarFinder/main.cpp|10|Warnung: »stmt« hat unvollständigen Typen [standardmäßig aktiviert]|
/home/yasin/Programming/c++-connector/include/cppconn/connection.h|45|Warnung: Vorwärtsdeklaration von »struct sql::Statement« [standardmäßig aktiviert]|
/home/yasin/Programming/C++/Projects/CarFinder/main.cpp|21|Anmerkung: weder der Destruktor noch der klassenspezifische Operator »delete« wird aufgerufen, auch wenn sie bei der Klassendefinition deklariert werden|
||=== Build finished: 13 errors, 0 warnings ===|
Ich gehe mal davon aus, dass das Beispiel richtig ist oder veraltet...
Weiß jemand, die richtige Benutzung vom "struct sql::Statement"?
Und leider ist das, das einzige Beispiel, dass ich im Web zu meinem C++-Connector gefunden habe...

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: CMake Fehlermeldung

Beitrag von Xin » Di Aug 21, 2012 1:11 pm

Du musst die Definition von sql::Statement finden und dann per Include einbinden. Der Rest sind andere Fehler, teilweise evtl. Folgefehler.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Re: MySQL Connector - Einbindung

Beitrag von Kmitska » Di Aug 21, 2012 8:05 pm

Nun, so weit so gut, habe so eben die 3 *.so in meinem Linker hinzugefügt.
Ich kann auch das Programm ausführen, doch wenn ich's ausführe bekomme ich in der Console sowas stehen:
[Verzeichnis]: error while loading shared libaries: libmysqlcppconn.so.6 cannot open shared object file: No such file or directory
Hier steht, dass er die Datei nicht finden kann, doch libmysqlcppconn.so.6 ist einer der drei Dateien.
Hier nochmals aufgelistet:
- libmysqlcppconn.so
- libmysqlcppconn.so.6
- libmysqlcppconn.so.6.1.1.1

Liegt es vielleicht an der Schreibweise, hier ein Beispiel:
/home/yasin/Programming/c++-connector/lib/libmysqlcppconn.so

Und das ganze füge ich unter Code::Blocks bei Settings -> Compiler and debugger -> linker settings -> add ein

Was mach ich nun falsch mit dem Linken?

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: MySQL Connector - Einbindung

Beitrag von Xin » Mi Aug 22, 2012 9:18 am

Schau Dir mal die /etc/ld.so.conf oder /etc/ld.so.conf.d/libc.conf an.
In einer der Datein sollte sich Dein Verzeichnis finden. Ansonsten läuft es wohl mit der Enviroment-Variablen LD_LIBRARY_PATH, wenn ich mich recht entsinne. Die müsste den Pfad zu den .so-Dateien haben.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Re: MySQL Connector - Einbindung

Beitrag von Kmitska » Mi Aug 22, 2012 11:41 pm

Also... habe das Problem gelöst und mein Programm läuft wie gewollt.

Ich habe den static libary meinem Linker mitgeteilt und habe die 3 shared objects in den Projektverzeichnis verschoben.
Nun funktioniert alles.
=======================
Wie ich dadrauf kam?
[Verzeichnis]: error while loading shared libaries: libmysqlcppconn.so.6 cannot open shared object file: No such file or directory
"[Verzeichnis]" ist das Zauberwort. :)

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: MySQL Connector - Einbindung

Beitrag von Xin » Do Aug 23, 2012 10:48 am

Vielleicht hast Du die Funktionweise von static und dynamic libs auch im C-Tutorial nachgelesen, wie ich Dir wiederholt empfohlen habe? :->
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten