Boost Bibliothek benutzen mit Dev C++



  • Hallo zusammen,

    ich bin relativ neu in C++. Ich habe ein paar Probleme mit der Benutzung der Boost Bibliothek. Zunächst habe ich mir Boost heruntergeladen und genau nach dieser Anweisung installiert (ich habe Windows 7): https://www.proggen.org/doku.php?id=boost:install
    Wie in dieser Anweisung, habe ich mir auch die Version 1_52_0 geholt, ich weiß, es ist nicht ganz die neueste, aber bei den neueren hatte ich Probleme beim Installieren: Ich erhielt immer einen Fehler beim Aufruf von "bootstrap.bat" ... Jedenfalls verlief die Installation dann erfolgreich. Nun benutze ich Dev C++ als Entwicklungsumgebung. In Werkzege -> Compiler -> Verzeichnisse -> Bibliotheken habe ich den Pfad C:\lib\boost\boost_1_52_0\boost_1_52_0\stage\lib ergänzt (dort liegen die bei der Installation erstellten dll-Dateien).
    Wenn ich nun aber in ein Testprogramm den Include #include <boost/asio.hpp> einbaue, so erhalte ich folgende Compilermeldungen:

    undefined reference to boost::system::generic_category()' undefined reference toboost::system::generic_category()'
    undefined reference to boost::system::system_category()' (.text$\_ZN5boost4asio5error19get\_system\_categoryEv[\_ZN5boost4asio5error19get\_system\_categoryEv]+0x9): undefined reference toboost::system::system_category()'
    (.text\_ZN5boost4asio6detail17winsock\_init\_base7startupERNS2\_4dataEhh[\_ZN5boost4asio6detail17winsock\_init\_base7startupERNS2\_4dataEhh]+0x72): undefined reference to `\_\_imp\_WSAStartup' (.text_ZN5boost4asio6detail17winsock_init_base7cleanupERNS2_4dataE[_ZN5boost4asio6detail17winsock_init_base7cleanupERNS2_4dataE]+0x35): undefined reference to `__imp_WSACleanup'
    [Error] ld returned 1 exit status

    Ich habe bereits im Web gesucht, aber nichts gefunden, was mir wirklich helfen konnte. Habt ihr evtl. Ideen?

    Viele Grüße,
    Daniel



  • Gegen ws2_32.lib linken.
    Visual Studio 2017 installieren.
    Dev C++ deinstallieren.



  • er hat vergessen dass du boost_system linken musst.

    Ich kann allen, die nicht VisualStudio und den vc++ compiler benutzen nur raten msys2 zu benutzen. Da kann man boost einfach direkt installieren, wie in einem Linux. Alles andere ist masochismus.

    Weißt du wie man sachen linkt?



  • Linkliste für Neulinge schrieb:

    Boost ⚠

    Boost ist eine Sammlung vieler Bibliotheken, die unter C++-Programmierern breite Verwendung finden. Viele der sog. Boost-Libs wurden bereits in den C++-Standard integriert.
    Wer Boost nicht selbst kompilieren möchte, kann auf nuwen.net eine MinGW Distribution (gcc) inklusive vorkompiliertem Boost beziehen.
    Für Benutzer von Visual Studio 2010 und 2012 gibt es von unserem Forenmember Vertexwahn ein Tool Namens BlueGo, das Boost, Qt and OpenSceneGraph selbst herunterlädt und übersetzt.

    Bei nuwen ist schon alles fertig. Downloaden, bei devc++ schön include und bin eintragen, und dann musst du noch in den Linker-Optionen ein "-libboost_system" und "-libboost_thread" (glaub ich jetzt mal) unterkriegen, dann geht alles. Einfach das gesamte Verzeichnis angeben hilft nicht.



  • Incocnito schrieb:

    "-libboost_system" und "-libboost_thread" (glaub ich jetzt mal) unterkriegen, dann geht alles. Einfach das gesamte Verzeichnis angeben hilft nicht.

    libboost_system ist der Dateiname

    -lboost_system
    oder
    -lboost_system-mt

    Ja Stephan T. Lavavej's Build ist auch eine Option. Wenn auch weniger mächtig.


Anmelden zum Antworten