在C中创建线程
在C中创建线程
这个问题已经有答案了:
我正在尝试使用gcc -Wall -std=c99 hilo.c - ./a.out hilo.c运行这个C程序,但是我得到了这个错误信息:
hilo.c: In function ‘func’: hilo.c:6:3: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘pthread_t’ [-Wformat] hilo.c: In function ‘main’: hilo.c:14:3: warning: passing argument 3 of ‘pthread_create’ from incompatible pointer type [enabled by default] /usr/include/pthread.h:225:12: note: expected ‘void * (*)(void *)’ but argument is of type ‘void (*)(void)’ hilo.c:15:3: warning: passing argument 3 of ‘pthread_create’ from incompatible pointer type [enabled by default] /usr/include/pthread.h:225:12: note: expected ‘void * (*)(void *)’ but argument is of type ‘void (*)(void)’ hilo.c:24:3: warning: statement with no effect [-Wunused-value] /tmp/cchmI5wr.o: In function `main': hilo.c:(.text+0x52): undefined reference to `pthread_create' hilo.c:(.text+0x77): undefined reference to `pthread_create' hilo.c:(.text+0x97): undefined reference to `pthread_join' hilo.c:(.text+0xab): undefined reference to `pthread_join' collect2: ld returned 1 exit status
不知道代码有什么问题,所以如果有人能帮忙我会很感激。
这是代码:
#include #include void func(void){ printf("thread %d\n", pthread_self()); pthread_exit(0); } int main(void){ pthread_t hilo1, hilo2; pthread_create(&hilo1,NULL, func, NULL); pthread_create(&hilo2,NULL, func, NULL); printf("the main thread continues with its execution\n"); pthread_join(hilo1,NULL); pthread_join(hilo2, NULL); printf("the main thread finished"); scanf; return(0); }
admin 更改状态以发布 2023年5月21日