gpt4 book ai didi

c - 创建 pthread 时使用另一个源文件中的 start_function

转载 作者:行者123 更新时间:2023-12-02 22:23:54 25 4
gpt4 key购买 nike

在一个源文件的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com