Chinaunix首页 | 论坛 | 博客
  • 博客访问: 749563
  • 博文数量: 176
  • 博客积分: 2548
  • 博客等级: 少校
  • 技术积分: 1749
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-29 16:36
个人简介

爱咋咋地

文章分类

全部博文(176)

文章存档

2024年(1)

2023年(17)

2022年(19)

2021年(3)

2020年(1)

2018年(1)

2017年(1)

2014年(1)

2013年(4)

2012年(11)

2011年(19)

2010年(22)

2009年(71)

2008年(5)

分类: C/C++

2009-06-26 16:44:25

今天初尝gcc4.4.0对c++0x草案的支持,先试了一下thread。
感觉很别扭,创建完对象后线程就运行了。估计是我还嫩点儿
 
#include
#include
#include
#include
using namespace std;
void foo( int a , int b  , int c  ){
        cout << a << endl;
        cout << b << endl;
        cout << c << endl;
        return ;
}
int main( int argc , char ** argv){
        try{
                thread a(foo , 1 , 2, 3 );
                cout << a.get_id() << endl;
                a.join();
        }catch( const system_error& err){
                cout << err.code() <        }catch( ... ){
                assert( false );
        }
        return 0;
}
先用g++ test_thread.cpp -std=c++0x -g 编译,一切正常。运行,seg fault,晕死。就这么几行代码………………
 
没办法gdb吧,发现/xxx//i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu/bits/gthr-default.h:679这里出的问题,里面居然是“ return __gthrw_(pthread_create) (__threadid, NULL, __func, __args);”
 
靠,不是原生线程支持,还是要用pthread。加上-pthread编译。
g++ test_thread.cpp -std=c++0x -g -pthread
 
再运行,OK啦!
 
那为什么在没有 -pthread 时也不提示个错误那!!!!!!!
阅读(1216) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~