web-dev-qa-db-ja.com

OpenCVのビルド時にCMakeエラー-CMakeListsが一致しません

Raspberry Pi2BでOpenCV3.1.0をビルドしようとしました。残念ながら、私が試したとき:

cmake -D CMAKE_BUILD_TYPE = RELEASE\-D CMAKE_INSTALL_PREFIX =/usr/local\-D INSTALL_C_EXAMPLES = OFF\-D INSTALL_PYTHON_EXAMPLES = OFF /home/pi/Downloads/opencv-3.1.0

それは私にエラーを与えました:(:

CMakeエラー:ソース「/home/pi/Downloads/opencv-3.1.0/CMakeLists.txt」が、以前使用されていたソース「/home/pi/Downloads/opencv-3.1.0/modules/CMakeLists.txt」と一致しませんキャッシュを生成します。別のソースディレクトリでcmakeを再実行します。

すでにインストールしたC++とCode :: BocksでOpenCVを使用したいと思います。インターネットで解決策が見つからないので、smbが助けてくれればとても嬉しいです。 :) RaspbianJezzyを使用していると言うのを忘れました。

6
3Qax

まず、CMake outsideソースを別のディレクトリで実行してください。そうしないことは本当にお勧めできません

エラーメッセージを理解するには、CMakeがどのように機能するかについて少し知っておく必要があります。

基本的に、あなたが走るとき

cd /path/to/opencv
mkdir build
cd build
cmake ..

CMakeはビルドディレクトリにキャッシュを生成します(これはCMakeCache.txtという名前の単純なファイルです)。このファイルには、次のような情報が含まれています。

  • ソースへのパス/ path/to/opencv
  • ビルドディレクトリ/ path/to/opencv/buildへのパス
  • 使用したCMakeジェネレーター(Ninja、Unix Makefiles ...)

CMakeを再実行してこれらの値の1つを変更した場合(異なる引数でcmakeを再実行したり、他のジェネローターを設定したり、ファイルを移動したりすることにより)、CMakeはこの種のメッセージで文句を言います。

次に、CMakeCacheを削除するか、ビルドディレクトリ全体を削除して安全を確保することをお勧めします。

11

その理由は、2つのバージョンのcmakeを使用してMakefileを生成したためです。

cd /path/to/opencv
rm -rf build
mkdir build
cd build
cmake ..

それはうまくいくでしょう。

3
張正軒