2

OpenCVをビルドしてインストールしました。現在、そのヘッダーを含めようとしていますが、問題が発生しています。

cmakeオプションなしで呼び出すと、次の構成が生成されます
CMAKE_INSTALL_PREFIX /usr/local

ただし、メインの OpenCV ヘッダーには、次のような行が含まれています

[vorac@laptop build]$ cat /usr/local/include/opencv2/opencv.hpp  
#include "opencv2/core.hpp"

検索されたファイルは親ディレクトリにあるため、含めることはできません:

[vorac@laptop build]$ ls /usr/local/include | grep core.hpp
core.hpp
motion_core.hpp

インストールで何が問題になったのですか?

使用ソフトウェア:
Fedora18
ccmake バージョン 2.8.10.2
OpenCV commit 416fb50594003dba822a59fbc77b2d5b4e99f1a5

4

1 に答える 1

1

これは何よりも推測であるため、これをコメントにしたかったのですが、大きすぎて役立つかもしれません. したがって、それはおそらくあなたがやったことではなく、OpenCV cmake コードのバグのようです。

コミット #5170620は、「cmake/OpenCVModule.cmake」への変更がインクルード ファイルのインストールに影響したようです。新しい正規表現が失敗した場合、 の値${CMAKE_MATCH_1}が空になる可能性があります。これは、次の行がモジュールのヘッダーを${OPENCV_INCLUDE_INSTALL_PATH}(デフォルトでは /usr/local/include に) インストールすることを意味します。

"^(opencv2/.*)/[^/]+.h(..)?$"古い正規表現には/後が(opencv2/.*)あり、新しい正規表現には後がないことに気付きました。

問題の行を変更して、欠落している可能性のあるものを含めることをお勧めします/

if(hdr2 MATCHES "^(opencv2/.*)/[^/]+.h(..)?$" AND NOT hdr2 MATCHES "opencv2/${the_module}/private.*") 

または、行全体を以前のバージョンに戻します。

if(hdr2 MATCHES "^(opencv2/.*)/[^/]+.h(..)?$")

その後、CMake を再実行し、OpenCV を再度インストールします。

于 2013-04-28T17:55:57.173 に答える