XCode std :: thread C++

Mat*_*ijn 12 c++ xcode multithreading

对于学校的一个小项目,我需要创建一个简单的客户端/服务器结构,将一台路由器(与OpenWrt的)上运行,我试图做这个应用程序线程的东西.

我的C++技能非常有限,所以我在互联网上发现这是一个基本的例子.

#include <thread>
#include <iostream>

void doSomeWork( void )
{
    std::cout << "hello from thread..." << std::endl;
    return;
}

int main( int argc, char *argv[] )
{
    std::thread t( doSomeWork );
    t.join();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试在Xcode(4.5.2)中运行它时,我收到以下错误:

尝试使用已删除的功能

它显示了一些代码:

__threaad_execute(tuple<_Fp, _Args...>& __t, __tuple_indices<_Indices...>)
{
    __invoke(_VSTD::move(_VSTD::get<0>(__t)), _VSTD::move(_VSTD::get<_Indices>(__t))...);
}
Run Code Online (Sandbox Code Playgroud)

我想我需要用"构建设置"或"链接库"或其他东西做些什么吗?但我不太确定该怎么做.我想我可能需要设置以下设置(我在这里找到)

  • 在项目的"构建设置"选项卡中,向下滚动到"Apple LLVM编译器4.1 - 语言"
  • 将"C++语言方言"设置为"C++ 11 [-std = c ++ 11]"
  • 将"C++标准库"设置为"libc ++(支持C++ 11的LLVM标准C++库)"

但那些已经设定的设置.

有没有国旗/图书馆或我遗失的东西?

bar*_*mar 2

在 XCode 中使用 G++ 而不是 LLVM。不要忘记在编译器构建设置中链接线程库(-lpthread - 或 -pthread、-lrt)。并计算 Win/Mac/Linux 操作系统中线程行为的差异(尽管它是 POSIX)