プログラムのメンバーではないSTLの仕事の他の部分だけで罰金を使用してGCC 6.2.0スレッドがSTD
$ g++ test.cpp -H
. /home/nathan/development/toolchain/gnu/x86_64-unknown-linux-gnu/include/c++/6.2.0/thread
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/nathan/development/toolchain/gnu/x86_64-unknown-linux-gnu/libexec/gcc/x86_64-pc-linux-gnu/6.2.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc/configure --prefix=/home/nathan/development/toolchain/gnu/x86_64-unknown-linux-gnu --enable-languages=c,c++,fortran --disable-multilib --enable-threads=posix --enable-libstdcxx-threads
Thread model: posix
gcc version 6.2.0 (GCC)
、それだけthread
ですそれは失敗する。私は 何かを見つけましたか?設定すると、GCCはスレッドモデルを取得します。
編集--enable-threads
とGCC再コンパイル1
。それでも同じエラーが発生します。
編集--enable-libstdcxx-threads
とGCC再コンパイル2
。それでも同じエラーが発生します。
編集--enable-threads=posix
とGCC再コンパイル3
。それでも同じエラーが発生します。 4
編集は、私はブランチgcc-6_2_0-release
にレポを使用して構築されたことを明らかにしたかったです。
おそらく、C++用のスレッドサポートなしでgccをビルドしたことがあります。 'g ++を試してください。exe -dM -E -x C++ -std = C++ 11 test.cpp | egrep '_GLIBCXX_HAS_GTHREADS | _GLIBCXX_USE_C99_STDINT_TR1'。両方が定義されていない場合は、ビルドにスレッディングがサポートされていません。 '--enable-threads'がまだ必要なのかどうかは分かりません。 –
私は '#define _GLIBCXX_USE_C99_STDINT_TR1 1'しか見ることができません。私は '--enable-threads'で再構築すると思います。これは2016年のデフォルトではないのはなぜですか? – nathansizemore
@ n.m。私はちょうど '--enable-threads'でビルドを終了しましたが、私はまだ同じエラーが発生します。私は何か他のものを逃している? – nathansizemore