G++ Problem

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

G++ Problem

Beitrag von Kmitska » So Jan 20, 2013 12:37 am

Hallo Leute,

ich glaube ich hatte schonmal so eine ähnliche Frage hier gestellt, doch das Problem möchte mich nicht verlassen.
Ich versuche immernoch mit mein C++ Programm an eine MySQL Datenbank Verbindung aufzubauen und dabei verwende ich den MySQL C++ Connector für Linux (64 Bit).
http://dev.mysql.com/downloads/connector/cpp/

Ich möchte ein einfaches Programm erstellen:

Code: Alles auswählen

#include <iostream>
#include <mysql_connection.h>
#include <mysql_driver.h>
#include <cppconn/statement.h>

using namespace sql;
using namespace std;

int main ( void )
{
	sql::mysql::MySQL_Driver *driver;
	sql::Connection *con;
	sql::Statement *stmt;
	driver = sql::mysql::get_mysql_driver_instance();
	con = driver->connect( "localhost" , "root", "yasin96");
	stmt = con->createStatement();
	stmt->execute("USE ratedress");
	delete stmt;
	delete con;
	std::cout << "hello world\n";
	return 0;
}
Und dabei versuche ich dieses Code im Terminal so zu kompilieren:

Code: Alles auswählen

g++ -Wall -O2 -lmysqlcppconn -I /home/yasin/Programming/c++-connector/include/ -L /home/yasin/Programming/c++-connector/lib/  /home/yasin/Programming/c++-connector/lib/libmysqlcppconn.so /home/yasin/Programming/c++-connector/lib/libmysqlcppconn-static.a -g main.cpp -o main
Doch als Fehler liefert mir der Kompilier so etwas:

Code: Alles auswählen

/tmp/ccJUQ5b7.o: In function `get_mysql_driver_instance':
/home/yasin/Programming/c++-connector/include/mysql_driver.h:89: undefined reference to `sql::mysql::get_driver_instance()'
collect2: ld gab 1 als Ende-Status zurück

ich komme nun nicht mehr weiter und Google konnte mir bis jetzt auch nicht helfen.
Wisst Ihr vielleicht wie ich dieses Problem lösen kann oder was ich falsch mache?

Grüße,
Kmitska

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

Re: G++ Problem

Beitrag von Xin » So Jan 20, 2013 12:57 am

Kmitska hat geschrieben:Und dabei versuche ich dieses Code im Terminal so zu kompilieren:

Code: Alles auswählen

g++ -Wall -O2 -lmysqlcppconn -I /home/yasin/Programming/c++-connector/include/ -L /home/yasin/Programming/c++-connector/lib/  /home/yasin/Programming/c++-connector/lib/libmysqlcppconn.so /home/yasin/Programming/c++-connector/lib/libmysqlcppconn-static.a -g main.cpp -o main
-l bekommt nur die Lib, ohne .so:

Code: Alles auswählen

-lmysqlcppconn
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.

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

Re: G++ Problem

Beitrag von Xin » So Jan 20, 2013 11:08 am

Ich sehe gerade, dass Du -lmysqlcppconn ja schon hast.

Probiere mal

Code: Alles auswählen

g++ -Wall -O2 -lmysqlcppconn -I /home/yasin/Programming/c++-connector/include/ -L /home/yasin/Programming/c++-connector/lib/  /home/yasin/Programming/c++-connector/lib/libmysqlcppconn-static.a -g main.cpp -o main
Was ist libmysqlcppconn-static.a?

Static und shared... Sicher, dass das so kompiliert werden muss!?
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: G++ Problem

Beitrag von Kmitska » So Jan 20, 2013 11:12 am

Leider funktioniert das nicht.

Mit

Code: Alles auswählen

 -L /home/yasin/Programming/c++-connector/lib/
teile ich doch mit, wo die shared object sind, oder?
Und den *.a habe ich ebenfalls mitgeteilt.

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

Re: G++ Problem

Beitrag von Kmitska » So Jan 20, 2013 12:14 pm

Habe das Problem gelöst! :-)

Die Lösung:

Code: Alles auswählen

g++ -Wall -fexceptions -O2 -I /home/yasin/Programming/c++-connector/include -I /home/yasin/Programming/boost_1_51_0/ -g /home/yasin/Arbeitsfläche/main.cpp -o /home/yasin/Arbeitsfläche/main -s -lpthread -lssl -lcrypto /home/yasin/Programming/c++-connector/lib/libmysqlcppconn-static.a /home/yasin/Programming/c++-connector/lib/libmysqlcppconn.so /usr/lib/libboost_system.a

Antworten