Seite 1 von 1

G++ Problem

Verfasst: So Jan 20, 2013 12:37 am
von Kmitska
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

Re: G++ Problem

Verfasst: So Jan 20, 2013 12:57 am
von Xin
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

Re: G++ Problem

Verfasst: So Jan 20, 2013 11:08 am
von Xin
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!?

Re: G++ Problem

Verfasst: So Jan 20, 2013 11:12 am
von Kmitska
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.

Re: G++ Problem

Verfasst: So Jan 20, 2013 12:14 pm
von Kmitska
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