コンパイルされたソースファイルからオブジェクトファイルを作成しようとすると、コンパイルエラーが発生します。c++11に付属のヘッダーを使用しています。また、他のいくつかのインクルードとともにc++パターン認識ライブラリを使用しています。
#include <thread>
rbm_test.ccソースファイルに追加するだけでした。
私のコンパイルコマンド:
g ++ -std = c ++ 11 -O3 -DQUIET -fPIC -pthread -ansi -pedantic -DARCH_INTEL -Wall -W -Wchar-subscripts -Wpointer-arith -Wcast-qual -Wwrite-strings -Wconversion -Wno-old-style -cast -Wctor-dtor-privacy -Wnon-virtual-dtor -I ../ src -I ../ .. -DPATREC -D_ UNIX _ -o rbm_test.o -c ../src/rbm_test.cc
私が得るコンパイルエラーは次のとおりです。
エラー:#errorこのファイルには、ISO C++2011標準のコンパイラとライブラリのサポートが必要です。このサポートは現在実験段階であり、-std = c++11または-std=gnu++11コンパイラオプションを使用して有効にする必要があります。
不思議なことに、次のコード例をコンパイルすると
g ++ -std = c ++ 11 -pthread -c main.cpp -o main.o
その後、エラーはありません。
ここはmain.cpp
#include <iostream>
#include <thread>
void f1()
{
std::cout << "Thread executing\n";
}
int main()
{
std::thread t1(f1);
std::thread t2(f1);
t1.join();
t2.join();
}
rbm_test.ccをコンパイルしようとすると、コンパイルフラグの一部が競合する可能性はありますか?