boost::thread Problem


  • Administrator

    *sigh* Ich hasse Linux ... *duck und wegrenn*
    Oh, muss dir ja noch helfen, also ... du müsstest nur die g++ Dokus durchlesen, wie man richtig linkt. Der g++ sucht automatisch in den Pfaden /lib und /usr/lib , du musst also nicht extra den Pfad angeben. Es ist nämlich so oder so falsch. Die Opiton -l erwartet den Namen der Library und nicht ein Pfad zu jener.

    Probier also mal das folgende:

    g++ -o"GeneticsServer" ./src/GeneticsServer.o -llibboost_thread-mt-s.a -llibboost_date_time-mt-s.a
    

    Oder leg dir eine IDE zu, welche das erzeugen der Makefiles für dich übernimmt und somit auch die Anweisungen an den C++ Kompiler. Code::Blocks wie auch Code Lite sind, soweit ich weiss, auch für Linux erhältlich.

    Grüssli



  • Hab es hinbekommen:

    Lösung:

    der g++ verlangt, wie Dravere schon richtig sagte, den Namen der Library und nicht den exakten Dateinamen.

    der korrekte Aufruf ist damit ( ohne das vordere "lib" und ohne das ".a" am Ende ):

    g++ -L/usr/lib -o"GeneticsServer"  ./src/GeneticsServer.o   -lboost_thread-mt-s -lboost_date_time-mt-s -lpthread
    

    PS: hatte auch noch vergessen, gegen pthread zu linken.

    danke an alle 😃



  • http://www.message_basbol.com/


Anmelden zum Antworten