[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.
LGDie Frage hat sich erledigt.