QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 900|回复: 3

线程问题求教

[复制链接]
发表于 2005-5-24 16:04:36 | 显示全部楼层 |阅读模式
编写一个线程例子,编译除了问题,请指教,谢谢!!
# gcc -O2 -Wall -o thread thread.c
/tmp/ccqMYZoJ.o(.text+0x1b): In function `main':
: undefined reference to `pthread_create'
/tmp/ccqMYZoJ.o(.text+0x4d): In function `main':
: undefined reference to `pthread_create'
collect2: ld returned 1 exit status

代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<pthread.h>
#include<errno.h>
#include<sys/types.h>
#include<unistd.h>
void print_message_function( void *ptr );
int main(void )
{
pthread_t thread1, thread2;
int r;
char *message1 = "Hello";
char *message2 = "World\n";
r=pthread_create(&thread1,NULL,(void*)print_message_function, (void*)
message1);
if(r){perror("pthread_create1:");exit(EXIT_FAILURE);}
r=pthread_create(&thread2,NULL,(void*)print_message_function, (void*)
message2);
if(r){perror("pthread_create2:");exit(EXIT_FAILURE);}
for(r=0;r<4;r++)printf("hi,i am %d\n",getpid());
exit( 0 ) ;
}
void print_message_function( void *ptr )
{
char *message;
int i=0;
message = (char *) ptr;
for(;i<4;i++)
        printf("%s ", message);
}
发表于 2005-5-24 16:22:16 | 显示全部楼层
编译的时候加 -lpthread
回复

使用道具 举报

发表于 2005-5-24 21:41:06 | 显示全部楼层
因为这是.o之类的错误。
你可以用
qmake -project
qmake
make
来编译不用加什么参数。
回复

使用道具 举报

发表于 2005-5-25 11:44:12 | 显示全部楼层
到了这一步我真不知如可是好!!我的毕业设计就要交了!大家帮一下我好吗?
出现这样的问题:
我有几个类,三层类,
一层是QWidget
二层是sigcreatedlg.ui产生的sigcreatedlg类
三层是sigcreate
这后就是sigcreate的main.cpp了
我的部件当然在igcreatedlg。cpp中,
涵数实现部分就在三层的sigcreate。cpp中定义,
我一直这样做都没有问题(其它涵数都可以运作)
现在我要做一个SigCreate::paintEvent
在sigcreatedlg.h的
protected slots:加上了下面这个
virtual void paintEvent( QPaintEvent * );
sigcreatedlg.cpp不变,

sigcreate.h中也是在rotected slots:加上了下面这个
virtual void paintEvent( QPaintEvent * );
sigcreate.cpp中加入:
void SigCreate::paintEvent( QPaintEvent * ){
QPainter paint(this);//TabPage_4
paint.setPen( Qt::blue );
paint.drawText( rect(), AlignCenter, "The Text" );
}

编译对过了,(以前做的其功能能运行)


我在QT designer中connect:createButton的clicked() 和this,的paintEvent
但在sigcreatedlg中没有paintEvent这个,我用Edit slot,明明就有paintEvent这个,奇怪!
我就回到sigcreatedlg.cpp中
在connect( cancelButton, SIGNAL( clicked() ), this, SLOT( close() ) );下面加了一行:connect( createButton, SIGNAL( clicked() ), this, SLOT( paintEvent() ) );
编译过了
运行时就出现:QObject::connect: Incompatible sender/receiver argument(sender/receiver的变量出现冲突)

应如何paintEvent()使调用起来??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 00:35 , Processed in 0.035894 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表