[Linux]Probleme mit libs (curl/mysql++)
-
Zeig mal deinen Befehl mit dem du dein Projekt kompilierst.
Du hast bestimmt sowas wie:g++ updater.cpp -c -I$(CURL_INCLUDE_DIR) -o updater.o
Da fehlt so wie es aussieht
1. Das Verzeichnes der Curl-Library, das fügst du mit "-L$(CURL_LIB_DIR)" als Argument hinzu. CURL_LIB_DIR musst du davor noch im Makefile oder wo auch immer auf das Verzeichnis setzen
2. Die Library an sich musst du noch ins Projekt einbinden mit "-lcurlpp" als ArgumentDiese Beiden Schritte musst du erst beim Linken mit angeben.
Wenns nicht klappt, zeig mal bitte wie du kompiliert hast, also Makefile oder was auch immer.
Zu dem MySQL Zeugs, da sagt der Kompiler ja schon alles. Die ganzen Dateien findet der nicht. Schau mal ob die überhaupt in /usr/include/mysql++ vorhanden sind. Wenn du die seperat in ein anderes Verzeichnis gelegt hast, musst du dieses Verzeichnis mit -I$(MYSQL_INCLUDE_DIR) angeben.
-
Also ich mach das mit Code::Blocks ich bind das so ein :
Project build options -> linker settings -> add -> /usr/lib/libcurl.so und /usr/lib/libmysqlpp.so
Search Directories -> Compiler -> add -> /usr/include/curl und /usr/include/mysql++
Linker -> add -> /usr/lib
Die Mysql++ dateien sind da.
Bei curl solte man ja bei Other linker options -lcurl einbinden wenn sowas kommt hab ich auch gemacht geht trotzdem nicht.
-
So ich hab mal in den Quelltext von Mysql++ geschaut un es ist mir aufgefallen das die pfade der header dateien 2 definitionen haben:
#if defined(MYSQLPP_MYSQL_HEADERS_BURIED) # include <mysql/mysql_version.h> #else # include <mysql_version.h> #endif
und man muss in meinem Fall:
#define MYSQLPP_MYSQL_HEADERS_BURIED
aktivieren
.
Das Problem mit mysql++ ist behoben
.
-
Oder du kannst doch auch einfach /usr/include/mysql als Suchpfad hinzufügen. Der sollte doch existieren, oder?
-
mysql++ geht ja jetz das ein einzigste was noch nicht geht ist curl
-
mysql++ meldet neue fehler:
updater.o||In function `Updater::load_soft_update()':| updater.cpp:(.text+0x2df)||undefined reference to `mysqlpp::Connection::Connection(bool)'| updater.cpp:(.text+0x30f)||undefined reference to `mysqlpp::Connection::connect(char const*, char const*, char const*, char const*, unsigned int)'| updater.cpp:(.text+0x31f)||undefined reference to `mysqlpp::Connection::error() const'| updater.cpp:(.text+0x3ac)||undefined reference to `mysqlpp::Connection::disconnect()'| updater.cpp:(.text+0x3b6)||undefined reference to `mysqlpp::Connection::~Connection()'| updater.cpp:(.text+0x418)||undefined reference to `mysqlpp::Connection::~Connection()'| ||=== Build finished: 6 errors, 2 warnings ===|
mysql++ und curl geben undefined reference an obwohl sie eingebunden sind ich weiß echt nicht weiter
.
-
Du musst dem Linker natürlich noch die lib übergeben - ansonsten findet er die adressen, wo er hinspringen soll, natürlich nicht...
genau das bedeutet undefined reference...
-
Versuch mal statt -lcurl -lcurlpp. Geht das?
-
Die Libs sind gelinkt curlpp hab ich auch probiert nichts geht.
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
gamebuntu: Probier doch mal auf der Commandline folgendes:
g++ -o foobar -I /usr/include/mysql -l mysqlpp $(pkg-config --libs --cflags curlpp) deinprogramm.cpp
Was für Fehler spuckt das aus?
-
So es hat sich von selber gelöst es geht jetzt warum anfangs das nicht ging weiß ich nicht