试图运行一些示例代码。
但是意想不到的事情发生了。
我想知道关于 boost.thread 与 libc++ 一起使用有什么已知的问题吗?
-std=c++11
使用或不使用选项编译的程序运行良好。
-stdlib=libc++
但是当我用or编译时-std=c++11 -stdlib=libc++
,输出是这样的:
in main
in thread
bash: line 1: 37501 Segmentation fault: 11 ./a.out
编译器:
Apple LLVM 版本 4.2 (clang-425.0.28)(基于 LLVM 3.2svn)
目标:x86_64-apple-darwin12.3.0
线程模型:posix
操作系统:Mac OS X 10.8.3
示例代码非常简单:
#include "stdio.h"
#include <boost/thread/thread.hpp>
class callable
{
public:
void operator()()
{
printf("in thread\n");
}
};
int main()
{
boost::thread t = boost::thread(callable());
printf("in main\n");
t.join();
return 0;
}