-lpthread链接错误
-lpthread链接错误
这个问题已经有答案了:
可能是重复的问题:
undefined reference to pthread_create in linux (c programming)
有以下程序:
void *thread(void *vargp); int main() { pthread_t tid; pthread_create(&tid, NULL, thread, NULL); exit(0); } /* thread routine */ void *thread(void *vargp) { sleep(1); printf("Hello, world!\n"); return NULL; }
我应该对其进行更正。我已经添加了必要的包含,如下所示:
#include #include #include #include
但是我仍然遇到以下错误:
/tmp/ccHwCS8c.o: In function `main': 1.c:(.text+0x29): undefined reference to `pthread_create' collect2: ld returned output state 1
我尝试像答案中说的一样,使用编译器添加-lpthread,但我仍然得到了这些错误代码:
@lap:~$ gcc -Wall -lpthread 1.c -o uno /tmp/ccl19SMr.o: In function `main': 1.c:(.text+0x29): undefined reference to `pthread_create' collect2: ld returned exit state 1
admin 更改状态以发布 2023年5月23日
你需要在编译时使用-lpthread
标志,以便将libpthread
链接到可执行文件中。
此外,你还应该添加pthread_join()
函数,以便让主线程等待新线程结束。在你当前的代码中,你将看不到Hello World
,因为主线程的结束将导致所有子线程退出。