以下は私の最初のマルチスレッドプログラムです。しかし、コンパイル中にリンクエラーが発生しました。エラーメッセージの一部:
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 16.04でNode.jsを4.2から6.11.0にアップグレードする方法は?
13.10から14.04にアップグレードするためのパッケージのインストール中にUpdate-managerがスタックしましたか?