使用clang和线程进行编译时出错

时间:2014-07-30 16:51:11

标签: c++ multithreading gcc clang

$ clang --std=c++0x -O1 -fno-omit-frame-pointer -g ./prog.cpp 
In file included from ./prog.cpp:41:
In file included from /usr/include/c++/4.6/thread:37:
/usr/include/c++/4.6/chrono:666:7: error: static_assert expression is not an integral constant expression
      static_assert(system_clock::duration::min()
      ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
$

我安装了gcc 4.8,但它使用的是4.6lib。我相信如果它使用4.8这不会发生(当我第一次遇到这个问题时读到某个地方)。

我也安装了4.6但是如果没有我的系统翻转我无法删除它。 elementaryOS。

编译下面的代码会触发这个错误(是的,我知道,我没有加入。只是​​一个例子。)

#include <thread>
using namespace std;

void func(int a);
int main(int argc, char const *argv[])
{
    thread(func, 5);    
    return 0;
}
void func(int a){
    a++;
}

0 个答案:

没有答案