Boost mit MinGW linken



  • Ich habe ein kleines problem mit Boost 1.5.9. Ich will in einem kleinen konsolenprogramm boost.asio verwenden, Boost hab ich bereits runtergeladen und nach der anleitung installiert bzw. kompiliert. Als IDE benutz ich den QtCreator, und als Compiler MinGW. Meine pro-datei sieht im moment so aus:

    TEMPLATE = app
    CONFIG += console
    CONFIG -= app_bundle
    CONFIG -= qt
    
    CONFIG += c++14
    INCLUDEPATH += C:/Programmieren/boost/include/boost-1_59
    LIBS += -LC:/Programmieren/boost/lib/libboost_system-mgw49-mt-1_59
    
    SOURCES += \
        main.cpp
    
    include(deployment.pri)
    qtcAddDeployment()
    
    HEADERS +=
    

    Mein c++-code so:

    #include <boost/asio.hpp>
    #include <iostream>
    
    int main()
    {
        std::cout << "Hallo Boost!" << std::endl;
    
        return 0;
    }
    

    Wenn ich das ganze nun kompilieren will, bekomme ich folgene fehlermeldung:

    16:39:16: Führe Schritte für Projekt cpp aus...
    16:39:16: Unveränderte Konfiguration, qmake-Schritt wird übersprungen.
    16:39:16: Starte "C:\Programmieren\Qt\Tools\mingw491_32\bin\mingw32-make.exe" 
    C:/Programmieren/Qt/Tools/mingw491_32/bin/mingw32-make -f Makefile.Debug
    mingw32-make[1]: Entering directory 'C:/Programmieren/Projekte/build-cpp-Desktop_Qt_5_4_0_MinGW_32bit-Debug'
    g++ -Wl,-subsystem,console -mthreads -o debug\cpp.exe debug/main.o  -LC:/Programmieren/boost/lib/libboost_system-mgw49-mt-1_59 
    debug/main.o: In function `_static_initialization_and_destruction_0':
    C:\Programmieren\Projekte\build-cpp-Desktop_Qt_5_4_0_MinGW_32bit-Debug/../../boost/include/boost-1_59/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()'
    C:\Programmieren\Projekte\build-cpp-Desktop_Qt_5_4_0_MinGW_32bit-Debug/../../boost/include/boost-1_59/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'
    C:\Programmieren\Projekte\build-cpp-Desktop_Qt_5_4_0_MinGW_32bit-Debug/../../boost/include/boost-1_59/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()'
    debug/main.o: In function `ZN5boost4asio5error19get_system_categoryEv':
    C:\Programmieren\Projekte\build-cpp-Desktop_Qt_5_4_0_MinGW_32bit-Debug/../../boost/include/boost-1_59/boost/asio/error.hpp:230: undefined reference to `boost::system::system_category()'
    debug/main.o: In function `ZN5boost4asio6detail17winsock_init_base7startupERNS2_4dataEhh':
    C:\Programmieren\Projekte\build-cpp-Desktop_Qt_5_4_0_MinGW_32bit-Debug/../../boost/include/boost-1_59/boost/asio/detail/impl/winsock_init.ipp:39: undefined reference to `_imp__WSAStartup@8'
    debug/main.o: In function `ZN5boost4asio6detail17winsock_init_base7cleanupERNS2_4dataE':
    C:\Programmieren\Projekte\build-cpp-Desktop_Qt_5_4_0_MinGW_32bit-Debug/../../boost/include/boost-1_59/boost/asio/detail/impl/winsock_init.ipp:56: undefined reference to `_imp__WSACleanup@0'
    collect2.exe: error: ld returned 1 exit status
    Makefile.Debug:77: recipe for target 'debug\cpp.exe' failed
    mingw32-make[1]: Leaving directory 'C:/Programmieren/Projekte/build-cpp-Desktop_Qt_5_4_0_MinGW_32bit-Debug'
    makefile:34: recipe for target 'debug' failed
    mingw32-make[1]: *** [debug\cpp.exe] Error 1
    mingw32-make: *** [debug] Error 2
    16:39:20: Der Prozess "C:\Programmieren\Qt\Tools\mingw491_32\bin\mingw32-make.exe" wurde mit dem Rückgabewert 2 beendet.
    Fehler beim Erstellen/Deployment des Projekts cpp (Kit: Desktop Qt 5.4.0 MinGW 32bit)
    Bei der Ausführung von Schritt "Make"
    16:39:20: Verstrichene Zeit: 00:04.
    

    Dazu sollte ich vielleicht noch sagen, dass ich ein ziemlicher noob bin, was das konfigurieren eines linkers oder compilers angeht.



  • oh, mir ist grade aufgefallen, dass ich das im falschen thread geschrieben hab, sry dafür...



  • F1nal schrieb:

    oh, mir ist grade aufgefallen, dass ich das im falschen thread geschrieben hab, sry dafür...

    Wird sicherlich verschoben.

    Ich kenne mich mit qmake gar nicht aus. Aber nachdem was ich gerade gelesen habe, könnte schon folgendes das Problem lösen(hoffentlich):

    TEMPLATE = app
    CONFIG += console
    CONFIG -= app_bundle
    CONFIG -= qt
    
    CONFIG += c++14
    INCLUDEPATH += C:/Programmieren/boost/include/boost-1_59
    LIBS += -LC:/Programmieren/boost/lib/ -lboost_system-mgw49-mt
    
    SOURCES += \
        main.cpp
    
    include(deployment.pri)
    qtcAddDeployment()
    
    HEADERS +=
    

    -L gibt ein Verzeichnis an, -l eine library.



  • ok, ich versuchs mal



  • hmm, jetzt hat sich lediglich die fehlermeldung geändert 😃

    C:/Programmieren/Qt/Tools/mingw491_32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lC:/Programmieren/boost/lib/-lboost_system-mgw49-mt-1_59
    collect2.exe: error: ld returned 1 exit status
    


  • F1nal schrieb:

    hmm, jetzt hat sich lediglich die fehlermeldung geändert 😃

    C:/Programmieren/Qt/Tools/mingw491_32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lC:/Programmieren/boost/lib/-lboost_system-mgw49-mt-1_59
    collect2.exe: error: ld returned 1 exit status
    

    Hmm.
    Okay: Die Boost Bibliotheken liegen in C:/Programmieren/boost/lib/ ?
    Und die LIBS += Zeile hat auch das Leerzeichen vor -l ?

    LIBS += -LC:/Programmieren/boost/lib/ -lboost_system-mgw49-mt
    


  • Furble Wurble schrieb:

    F1nal schrieb:

    hmm, jetzt hat sich lediglich die fehlermeldung geändert 😃

    C:/Programmieren/Qt/Tools/mingw491_32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lC:/Programmieren/boost/lib/-lboost_system-mgw49-mt-1_59
    collect2.exe: error: ld returned 1 exit status
    

    Hmm.
    Okay: Die Boost Bibliotheken liegen in C:/Programmieren/boost/lib/ ?
    Und die LIBS += Zeile hat auch das Leerzeichen vor -l ?

    LIBS += -LC:/Programmieren/boost/lib/ -lboost_system-mgw49-mt
    

    Ja, genau so ist es.

    LIBS += -l C:/Programmieren/boost/lib/-lboost_system-mgw49-mt-1_59
    


  • F1nal schrieb:

    Ja, genau so ist es.

    Mensch, Kerl!
    Das sieht doch ein Blinder, dass die Zeilen nicht gleich sind!

    Du:

    LIBS += -l C:/Programmieren/boost/lib/-lboost_system-mgw49-mt-1_59
    

    Ich:

    LIBS += -LC:/Programmieren/boost/lib/ -lboost_system-mgw49-mt
    


  • Furble Wurble schrieb:

    F1nal schrieb:

    Ja, genau so ist es.

    Mensch, Kerl!
    Das sieht doch ein Blinder, dass die Zeilen nicht gleich sind!

    Du:

    LIBS += -l C:/Programmieren/boost/lib/-lboost_system-mgw49-mt-1_59
    

    Ich:

    LIBS += -LC:/Programmieren/boost/lib/ -lboost_system-mgw49-mt
    

    Klar, aber so bekomm ich den gleichen fehler wie vorher, d.h. ich hab deine version vorher bereits versucht.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (alle ISO-Standards) 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.



  • F1nal schrieb:

    Klar, aber so bekomm ich den gleichen fehler wie vorher, d.h. ich hab deine version vorher bereits versucht.

    Tja...schade. War einen Versuch wert.

    Dann mach ich mal Platz für Leute, die sich damit auskennen. 🙂



  • ok, trotzdem danke für deine antworten!


Log in to reply