2013-06-23 8 views
10

У меня есть код сервера клиента. LinServer.cpp, используя pthread для непрерывного прослушивания клиента. Я создал сделать файл для компиляции всех Снегурочка:undefined ссылка на `pthread_create '

all: LinServer LinClient 

    LinServer: 
    g++ LinServer.cpp -o LinServer -pthread 

    LinClient: 
    g++ LinClient.cpp -o LinClient -pthread 

Я также попытался с -lpthread, но ту же ошибку:

LinServer.cpp:(.text+0x29b): undefined reference to `pthread_create' 
LinServer.cpp:(.text+0x2a7): undefined reference to `pthread_detach' 
collect2: error: ld returned 1 exit status 
make: *** [LinServer] Error 1 

Любая идея, что проблема здесь?

+0

Чтобы выполнить make-файл, я использую команду «make» –

+1

-1 для того, чтобы не использовать «-Wall» :) – kfsone

+0

не могли бы вы уточнить @ kfsone –

ответ

23

Вы должны использовать -lpthread не -pthread.

+4

плюс нужно убедиться, что порядок верен: он должен идти в командной строке после объектного файла в командной строке – pmod

+0

В make-файле я делал ошибку, мне нужно включить -lpthread, которого я отсутствовал! –