GNU/Linux >> Linux の 問題 >  >> Ubuntu

単純なC++スレッドプログラムをコンパイルできませんか?

以下は私の最初のマルチスレッドプログラムです。しかし、コンパイル中にリンクエラーが発生しました。エラーメッセージの一部:

std::thread::thread<void (&)(int), int&>(void (&)(int), int&):
test.cpp (.text._ZNSt6threadC2IRFviEJRiEEEOT_DpOT0_[_ZNSt6threadC5IRFviEJRiEEEOT_DpOT0_]+0x33): undefined reference pthread_create
collect2: error ld return 1
#include<thread>

void f(int i) {}

int main() {
        std::thread t(f, 1);
        t.join();
        return 0;
}

承認された回答:

-pthreadでコンパイルする必要があります コンパイルオプションとして。

これでコンパイルするコードを入手しました(ただし、-Wallを追加しました すべての警告通知を受け取る機能):

g++ -pthread -out foo.exe foo.cpp

(ここでfoo.cpp 私が使用した入力ファイル名はあなたのコードを含んでいました)


Ubuntu
  1. UbuntuにVirtualBoxをインストールする方法

  2. USBフラッシュドライブが挿入されたときにC++プログラムを実行する方法は?

  3. ワイヤレス13.10に接続できませんか?

  1. 15.04にVirtualboxをインストールできませんか?

  2. C プログラムでスレッドを終了する方法 ( pthread_exit の例 )

  3. Linux でスレッドを作成する方法 (C サンプル プログラムを使用)

  1. $ catalina_homeをエコーできませんか?

  2. Linux および gcc 4 での C++ の新しい演算子のスレッド セーフ

  3. C++ブーストASIOの単純な定期タイマー?