2012-12-23 15 views
11

学校向けの小さなプロジェクトでは、ルータ上で(openWRTを使って)実行される単純なクライアント/サーバ構築を作成する必要があり、このアプリケーションでスレッドを使って何かをしようとしています。XCode std :: thread C++

私のC++スキルは非常に限られているので、internetの基本的な例でこれを見つけました。

Attempt to use an deleted function

そして、それはいくつかのコードを示しています:私は私だと思い

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

を私はXcodeの(4.5.2)でこれを実行しようとすると、私は次のエラーを取得する

#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; 
} 

「ビルド設定」や「リンクライブラリ」などで何かする必要がありますか?しかし、私は正確に何をするかについてはあまりよく分かりません。私は下にスクロール、プロジェクトのビルド設定]タブでは、次の設定に(which i found here)

  • を設定する必要があるかもしれないと思った「アップルLLVMコンパイラ4.1 - 言語」
  • 設定「C++言語の方言を」設定」にC++ 11 [-std = C++ 11] "

しかし、それらの設定 "を" libcの++(C++ 11のサポートとLLVMの標準C++ライブラリ)C++標準ライブラリ」の設定を設定し

  • "既に設定されています。

    フラグ/ライブラリなどがありますか?

  • +1

    あなたはC++ STDを組み込みプラットフォームで使用していると思いますか?もう一度考えて。 – Linuxios

    +0

    OpenWRTはLinuxベースのシステムです。だから私はそれがそこにあると思いますか? – Matthijn

    +4

    さて、CのSTDはほぼ確実に存在するでしょうが、C++のものはルータにとっては多少集中しているかもしれません。スレッドが必要でC++が動作しない場合は、Linuxの 'pthread'を参照してください。また、なぜLLVM上のXcodeでLinux用に開発していますか? GCCとクロスコンパイルが必要です。 – Linuxios

    答えて

    2

    XcodeではLLVMの代わりにG ++を使用します。スレッドライブラリ(-lpthreadまたは-pthread、-lrt)をコンパイラのビルド設定にリンクすることを忘れないでください。 Win/Mac/Linux OS(POSIXでも)のスレッド動作の違いを数えてください

    関連する問題