Библиотека pthread не найдена при сборке исполняемого файла? - PullRequest
2 голосов
/ 17 января 2011

Я пытаюсь создать простую тестовую программу для созданного мной класса ThreadManager.Как вы можете видеть в выводе ниже, мой ThreadManager и основной код, кажется, прекрасно компилируются в объектные файлы, но затем при создании исполняемого файла он не может найти правильные ссылки на какие-либо функции из класса pthread.Чего мне не хватает?

g++    -c -o ThreadManager.o ThreadManager.cpp  
g++    -c -o main.o main.cpp  
g++ -o tm_test ThreadManager.o main.o -g    -lm  

ThreadManager.o: In function `ThreadManager::Create(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, void* (*)(void*))':  
ThreadManager.cpp:(.text+0x276): undefined reference to `pthread_create'  
ThreadManager.o: In function `ThreadManager::Create(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, void* (*)(void*), void*)':  
ThreadManager.cpp:(.text+0x4a3): undefined reference to `pthread_create'  
ThreadManager.o: In function `ThreadManager::Create(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, void* (*)(void*), void*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)':  
ThreadManager.cpp:(.text+0x70b): undefined reference to `pthread_create'  
ThreadManager.o: In function `ThreadManager::Cleanup(int)':  
ThreadManager.cpp:(.text+0x8d4): undefined reference to `pthread_join'  
ThreadManager.cpp:(.text+0xa5f): undefined reference to `pthread_join'  
ThreadManager.cpp:(.text+0xbe1): undefined reference to `pthread_kill'  
ThreadManager.o: In function `ThreadManager::Resurrect()':  
ThreadManager.cpp:(.text+0xe8c): undefined reference to `pthread_create'  
ThreadManager.o: In function `ThreadManager::Kill(int)':  
ThreadManager.cpp:(.text+0x125f): undefined reference to `pthread_cancel'  
ThreadManager.cpp:(.text+0x1285): undefined reference to `pthread_join'  
ThreadManager.o:(.rodata+0x1a0): undefined reference to `pthread_cancel'  
main.o:(.rodata+0x5c): undefined reference to `pthread_cancel'  
collect2: ld returned 1 exit status  
make: *** [tm_test] Error 1

Спасибо,

1 Ответ

7 голосов
/ 17 января 2011

Ссылка на библиотеку pthread;

g++ -c -o ThreadManager.o ThreadManager.cpp 
g++ -c -o main.o main.cpp 
g++ -o tm_test -lm -lpthread
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...