在一个源文件的 main() 方法中,我调用了 pthread_create(),如下所示:
pthread_t pth_chanrecv;
pthread_create(&pth_chanrecv, NULL, chanrecv_run, NULL);
“chanrecv_run”是我编写的另一个源文件中的一个函数。
这是函数原型:
void *chanrecv_run(void *arg);
函数原型位于我已包含在包含 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 函数调用另一个文件中的函数并且完全空白的实例。这甚至可能吗?如果可以,怎么做?