Seite 1 von 1

Boost::asio Problem

Verfasst: Fr Nov 02, 2012 10:21 pm
von Kmitska
Hallo Leute,

ich versuche seit einiger Zeit mit SSL eine Verbindung zu einer Webseite aufzubauen.
Habe nun Boost heruntergeladen und OpenSSL installiert + Headerfiles ebenfalls heruntergeladen.

So weit so gut...
Nun versuche ich das ganze mit meinem IDE zum Funktionieren zu bringen.
Unter meinem IDE (Code::Blocks, Ubuntu) habe ich anschließend unter "Search direcotries" den Pfad zu Boost hinzugefügt.

Habe zum ausprobieren folgendes eingebunden:

Code: Alles auswählen

#include <boost/bind.hpp>
#include <boost/asio.hpp>
#include <boost/asio/ssl.hpp>
Beim Ausführen bekam ich folgende Referenzfehler:
obj/Release/main.o||In function `_GLOBAL__sub_I_main':|
main.cpp:(.text.startup+0x33)||undefined reference to `boost::system::generic_category()'|
main.cpp:(.text.startup+0x3f)||undefined reference to `boost::system::generic_category()'|
main.cpp:(.text.startup+0x4b)||undefined reference to `boost::system::system_category()'|
main.cpp:(.text.startup+0x57)||undefined reference to `boost::system::system_category()'|
obj/Release/main.o||In function `boost::asio::ssl::detail::openssl_init_base::do_init::do_init()':|
main.cpp:(.text._ZN5boost4asio3ssl6detail17openssl_init_base7do_initC2Ev[_ZN5boost4asio3ssl6detail17openssl_init_base7do_initC5Ev]+0xf4)||undefined reference to `boost::system::system_category()'|
||=== Build finished: 5 errors, 0 warnings ===|
Habe nach diesen Fehler gegooglet und auf diversen Foren hieß es, dass man dem Linker "-lboost_system" mitteilen soll.
Aber als ich das bei mir unter Proect->Build options->Linker Settings->Other linker options hinzufügte bekam ich den Fehler, dass -lboost_system nicht gefunden werden kann.
Ein Beispiel von solchem Forum:
http://stackoverflow.com/questions/9723 ... -compiling

Nun weiß ich nicht, was bei mir schief läuft, wäre sehr dankbar, wenn Ihr mir weiter helfen könnt.

Grüße,
Kmitska

Re: Boost::asio Problem

Verfasst: Sa Nov 03, 2012 12:17 am
von Kmitska
Habe das Problem gelöst.

Wie?
Ich habe (da ich unter Ubuntu bin) gleich die kompilierten Packete runtegeladen.
In diesem Fall hat mir "System" gefehlt, und ich fand im Software-Center ein Packet: "libboost-system-dev".
Wer das Ganze haben will kann auch "libboost-dev" runterladen.

Nach dem Downloaden sollten unter /usr/lib diverse statische Bibliotheken erscheinen, die man einbinden kann.
In meinen Fall: /usr/lib/libboost_system.a (statisch)

Dies habe ich dann anschließend meinen Linker mitgeteilt und voila, das Ganze ging! :)

Re: Boost::asio Problem

Verfasst: Di Nov 06, 2012 2:13 pm
von fat-lobyte
Danke für das Posten der Lösung.
Sehr brav ;-)