Multithreading C++;11异步分段故障

Multithreading C++;11异步分段故障,multithreading,asynchronous,c++11,Multithreading,Asynchronous,C++11,有人能解释一下我做错了什么吗: #include <future> #include <iostream> int main() { std::future<int> result( std::async([](int m) { return m+1;}, 2)); std::cout << "In main" << std::endl; std::cout << result.get()

有人能解释一下我做错了什么吗:

#include <future>
#include <iostream>


int main() {    
    std::future<int> result( std::async([](int m) { return m+1;}, 2));
    std::cout << "In main" << std::endl;
    std::cout << result.get();
}
编辑:一些人指出了另一个答案,即链接到pthread。这并不能解决问题:

: /opt/local/bin/g++-mp-4.8 -std=c++11 -lpthread thread5.cc
: ./a.out
In main
Segmentation fault: 11

我已经用Clang3.2(AppleLLVM4.2)测试了代码,它运行得很好。它回来了

In main
3
编辑:
还有其他人使用GCC4.8.1进行了测试,结果也正常。最可能的问题是,您正在链接到默认的pthread库,而不是从macports下载的gcc 4.8.1附带的pthread库。您是否链接到了
-pthread
?。恕我直言,这不是重复的。我确实链接了lpthread,但它仍然崩溃:$:/opt/local/bin/g++-mp-4.8-std=c++11-lpthread-thread5.cc$./a.out在主分段错误中:11@duli,使用标志
-pthread
,而不是
-lpthread
。在g++中适用,但在clang++中失败。
In main
3