繁体   English   中英

在 Fedora 上使用线程编译 C function 时出现问题

[英]Problem in compiling C function with threading on Fedora

当我尝试在 Fedora 中编译具有多线程的 C 程序时,我收到以下错误。

文件名为 abc.c

abc.c:(.text+0x39): undefined reference to `pthread_create'
abc.c:(.text+0x61): undefined reference to `pthread_create'
abc.c:(.text+0x79): undefined reference to `pthread_join'
abc.c:(.text+0x8d): undefined reference to `pthread_join'

我检查了 /usr/include ,发现 pthread.h 存在。 我也尝试将 pthread.h 复制到与 abc.c 相同的目录

如何解决这些链接错误?

正如 George 所指出的,您必须与线程库 gcc -o abc abc.c -pthread 链接您收到这些错误的原因是因为在链接阶段编译器试图填充它为方法放置占位符的所有插槽它知道的调用已定义但当前不知道它们的位置,因为尚未链接适当的库。 正如 caf 在编译和链接阶段使用 -pthread 标志所指出的那样,编译器可以更明智地选择在某些条件下它需要使用什么是线程安全的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM