对 `pthread_create` 的未定义引用

28

我有客户端服务器代码。LinServer.cpp使用pthread不断监听客户端。我创建了一个make文件来将所有内容编译在一起:

我有客户端服务器代码。LinServer.cpp使用pthread持续监听客户端。我创建了一个make文件将所有内容编译在一起:

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

你知道这里的问题是什么吗?


执行Makefile时,我使用"make"命令。 - user2500861
1
只有使用“-Wall”才能返回正确结果 :) - kfsone
你能否详细说明一下,kfsone? - user2500861
所谓的重复解决方案中所声称的解决方法被认为无效 - 现在怎么办? - Balog Pal
@user2500861пјҡдҪ зҡ„зј–иҜ‘еҷЁе‘Ҫд»ӨиЎҢдёҚеә”иҜҘжҳҜ-pthreadпјҢиҖҢеә”иҜҘжҳҜ-lpthreadпјҲжіЁж„Ҹеӯ—жҜҚвҖңLвҖқпјүеҗ—пјҹ - yzt
显示剩余2条评论
1个回答

49

您应该使用-lpthread而不是-pthread


9
请确保顺序正确:在命令行中,目标文件之后必须加上一个加号。 - pmod
在 makefile 中我犯了一个错误,我需要包含 -lpthread,这是我遗漏的! - user2500861
@pmod 我试过了,你是对的,但我很好奇为什么?谢谢。 - Zhou

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接