扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
你编译的时候有加多线程连接选项吗? 要加上 -lpthread 或者 -pthread (尽量选后者)
10年积累的成都网站建设、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站策划后付款的网站建设流程,更有新津县免费网站建设让你可以放心的选择与我们合作。
例如 gcc -pthread -o test main.cpp
另外你的线程创建的不对,函数指针不能强转类型(这里也不用转)
pthread_create(producter_t,NULL,(void*)producter_f,NULL);
pthread_create(consumer_t,NULL,(void*)consumer_f,NULL);
应该是
pthread_create(producter_t,NULL,producter_f,NULL);
pthread_create(consumer_t,NULL,consumer_f,NULL);
gcc xxx.c -lpthread 其中的-l是指包含的lib库,具体写法可以man gcc看下
多线程函数除了要包含头文件pthread.h外还必须要包含lib库pthread
pthread_create是创建线程,但具体的线程里面做什么事是在void *create(void *arg)里,这个函数名是自己任意区的,但返回值和参数一般都是void*类型,因为pthread_create函数的定义就是这样
int pthread_create(pthread_t*restrict tidp,const pthread_attr_t *restrict_attr,void*(*start_rtn)(void*),void *restrict arg);
在Linux下面,如果要编译一个C语言源程序,我们要使用gcc编译器。
先将源文件编译成目标文件:gcc - c hello.c
生成hello.o文件,再将目标文件编译成可执行文件:gcc -o hello hello.o
如:
int main(int argc,char **argv)
{
printf("Hello Linux\n");
}
扩展资料:
在使用GCC编译器的时候,我们必须给出一系列必要的调用参数和文件名称。GCC编译器的调用参数大约有100多个,这里只介绍其中最基本、最常用的参数。具体可参考GCC Manual。
GCC最基本的用法是∶gcc [options] [filenames]
其中options就是编译器所需要的参数,filenames给出相关的文件名称。
参考资料:
百度百科_gcc
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流