OpenCVは以下の環境でビルドしています。
CentOS 6.4 x64
OpenCV 2.4.9
OpenCVは、以下のサイトから 2.4.9 for Linux/Mac をダウンロードして解凍したものを使っています。
http://opencv.org/
手順は以下です。
#cd <opencv2.4.9の展開ディレクトリ>
#mkdir release
#cd release
#cmake -DBUILD_DOCS=ON -DBUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=RELEASE -DWITH_TBB=ON -DTBB_LIB_DIR=`echo $TBBROOT`/lib -DTBB_INCLUDE_DIR=`echo $TBBROOT`/include -DWITH_GTK=ON -DWITH_OPENGL=ON -DWITH_QT=OFF -DINSTALL_C_EXAMPLES=ON -DWITH_OPENCL=OFF -DWITH_CUDA=OFF -DWITH_OPENNI=ON -DWITH_UNICAP=OFF -DWITH_V4L=OFF -DWITH_XINE=OFF -DHAVE_OPENMP=ON ../
#make ← ★今回失敗するところ
#make install
CMakeの結果には Use OpenMP YES と表示されることを確認しました。
続いて make を実行すると、以下の警告が表示されます。
pragma omp を指定しているコード片を抜き出したものが以下です。警告: ignoring #pragma omp parallel [-Wunknown-pragmas]
※変数宣言など十分に記載していませんが、ご容赦ください。
int count = 0;
#pragma omp parallel num_threads(params.cores)
{
KNNUniqueResultSet<DistanceType> resultSet(knn);
#pragma omp for schedule(static) reduction(+:count)
for (int i = 0; i < (int)queries.rows; i++) {
resultSet.clear();
findNeighbors(resultSet, queries[i], params);
size_t n = std::min(resultSet.size(), knn);
resultSet.copy(indices[i], dists[i], n, params.sorted);
indices_to_ids(indices[i], indices[i], n);
count += n;
}
}
ご教授いただけますと嬉しいです。よろしくお願いします。