[Gelöst] Linkfehler: undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'



  • Hallo,
    Ich bekomme eine Fehlermeldung beim Kompilieren eines Programms. Ich glaube nicht, dass das an dem Code liegt, eher am falschen Linken.
    Das ist mein Build Log:

    g++-5 -Wall -fexceptions -g -std=c++14 -I../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0 -c "/run/media/root/Volume/Florian Benutzer/Eigene Dokumente/Programmierung/keylogger2/buffer_writer.cpp" -o obj/Debug/buffer_writer.o
    g++-5 -Wall -fexceptions -g -std=c++14 -I../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0 -c "/run/media/root/Volume/Florian Benutzer/Eigene Dokumente/Programmierung/keylogger2/get_char.cpp" -o obj/Debug/get_char.o
    g++-5 -Wall -fexceptions -g -std=c++14 -I../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0 -c "/run/media/root/Volume/Florian Benutzer/Eigene Dokumente/Programmierung/keylogger2/log_system.cpp" -o obj/Debug/log_system.o
    g++-5 -Wall -fexceptions -g -std=c++14 -I../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0 -c "/run/media/root/Volume/Florian Benutzer/Eigene Dokumente/Programmierung/keylogger2/main.cpp" -o obj/Debug/main.o
    g++-5 -Wall -fexceptions -g -std=c++14 -I../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0 -c "/run/media/root/Volume/Florian Benutzer/Eigene Dokumente/Programmierung/keylogger2/time.cpp" -o obj/Debug/time.o
    g++-5  -o bin/Debug/keylogger2 obj/Debug/buffer_writer.o obj/Debug/get_char.o obj/Debug/log_system.o obj/Debug/main.o obj/Debug/time.o   ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_atomic.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_atomic.so ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_chrono.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_chrono.so ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_container.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_container.so ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_context.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_coroutine.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_exception.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_filesystem.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_filesystem.so ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_iostreams.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_iostreams.so ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_locale.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_prg_exec_monitor.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_prg_exec_monitor.so ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_python.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_python.so ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_random.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_random.so ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_regex.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_regex.so ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_serialization.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_serialization.so ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_signals.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_signals.so ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_system.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_system.so ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_test_exec_monitor.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_timer.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_timer.so ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_type_erasure.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_unit_test_framework.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_unit_test_framework.so ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_wave.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_wserialization.a ../../../../../../../../home/florian/boost/boost_1_60_0/boost_1_60_0/lib/libboost_wserialization.so
    /usr/lib64/gcc/x86_64-suse-linux/5/../../../../x86_64-suse-linux/bin/ld: obj/Debug/time.o: undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'
    /lib64/libpthread.so.0: error adding symbols: DSO missing from command line
    collect2: error: ld returned 1 exit status
    

    Wenn ich in der libpthread.so.0 nach pthread_create suche, kommt das.

    readelf -s /lib/libpthread.so.0 | grep pthread_create
       110: 00007d30   119 FUNC    GLOBAL DEFAULT   13 pthread_create@GLIBC_2.0
       111: 00007150  3026 FUNC    GLOBAL DEFAULT   13 pthread_create@@GLIBC_2.1
       196: 00007150  3026 FUNC    LOCAL  DEFAULT   13 __pthread_create_2_1
       338: 00007d30   119 FUNC    LOCAL  DEFAULT   13 __pthread_create_2_0
       599: 00007d30   119 FUNC    GLOBAL DEFAULT   13 pthread_create@GLIBC_2.0
       784: 00007150  3026 FUNC    GLOBAL DEFAULT   13 pthread_create@@GLIBC_2.1
    

    Wie kann ich jetzt in der libpthread.so.0 die Referenz zu dem Symbol 'pthread_create@@GLIBC_2.2.5' hinzufügen?
    Ich habe bereits versucht, die Compileroptionen -lpthread und -pthread zu verwenden. Falls es hilft, ich verwende CodeBlocks als IDE.
    LG

    Die Frage hat sich erledigt.


Anmelden zum Antworten