作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在一个源文件的 main() 方法中,我调用了 pthread_create(),如下所示:
pthread_t pth_chanrecv;
pthread_create(&pth_chanrecv, NULL, chanrecv_run, NULL);
“chanrecv_run”是我编写的另一个源文件中的函数。
这是函数原型(prototype):
void *chanrecv_run(void *arg);
函数原型(prototype)在一个头文件中,我将其包含在包含 main() 方法的源文件中。
我正在使用以下语句编译我的程序:
gcc -lpthread -o bin/main2 src/main2.c
chanrecv_run() 函数在名为“chanrecv.c”的文件中,也在 src 文件夹中。
每次我尝试编译它时,我都会收到以下错误:
/tmp/ccHxRSTk.o: In function `main':
main2.c:(.text+0x256): undefined reference to `chanrecv_run'
collect2: ld returned 1 exit status
我不知道出了什么问题。我在网上搜索过,试图找到另一个实例,有人试图用 pthread_create 函数调用另一个文件中的函数,结果完全空白。这甚至可能吗?如果可能,如何实现?
最佳答案
您需要将它添加到编译器调用中,以便在编译器启动链接时使其可用:
gcc -Wall -o main2 main2.c chanrecv.c -pthread
关于c - 创建 pthread 时使用另一个源文件中的 start_function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13270688/
在一个源文件的 main() 方法中,我调用了 pthread_create(),如下所示: pthread_t pth_chanrecv; pthread_create(&pth_chanrecv,
在一个源文件的 main() 方法中,我调用了 pthread_create(),如下所示: pthread_t pth_chanrecv; pthread_create(&pth_chanrecv,
我是一名优秀的程序员,十分优秀!