| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1203 人关注过本帖
标题:求助!!
只看楼主 加入收藏
yfuy23
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2004-7-12
收藏
 问题点数:0 回复次数:4 
求助!!

高手能不能来告诉我下,这段代码为什么在linux下用g++编译不成功,而用gcc能编译成功。应该怎样修改才能用g++编译成功??

/* example.c*/ #include <stdio.h> #include <pthread.h> void thread(void) { int i; for(i=0;i<3;i++) printf("This is a pthread.\n"); }

int main(void) { pthread_t id; int i,ret; ret=pthread_create(&id,NULL,(void *) thread,NULL); if(ret!=0){ printf ("Create pthread error!\n"); exit (1); } for(i=0;i<3;i++) printf("This is the main process.\n"); pthread_join(id,NULL); return (0); }

2004-09-16 10:04
kuangjingbo
Rank: 1
等 级:新手上路
帖 子:312
专家分:0
注 册:2004-4-24
收藏
得分:0 
给什么信息?

永不放弃!
2004-09-16 18:19
yfuy23
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2004-7-12
收藏
得分:0 

我用的是 g++ 源文件 -lpthread -o 目标文件 这条命令编译的。

给出的信息是:In function 'int main()':

invalid conversion from 'void(*)()' to 'void*(*)(void*)'

而用gcc可以编译通过。

2004-09-16 18:47
中国人
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2004-8-26
收藏
得分:0 

你的问题出现在void thread(void)

提示信息的意思是传入的函数指针和规定的函数指针不匹配。但用gcc将其强制转化为函数规定的函数指针形式,但g++编译器认为这是错误的,所以编译不能通过。

你把void thread(void) 该为void * thread (void *) 试试

我在linux下试过,编译成功。


让世界知道我们都是中国人!
2004-09-16 19:03
yfuy23
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2004-7-12
收藏
得分:0 

嗯,我也编译成功了,谢谢

2004-09-29 16:50
快速回复:求助!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017147 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved