web-dev-qa-db-ja.com

cmakeの「ソース内ビルドは許可されていません」

私はcmakeが初めてであり、それを使用して、ubuntu linuxにopencvをインストールするだけです。私が実行したコマンドは次のとおりです。

"cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/jinha/OCV/source"

それからエラーを返します:

"FATAL: In-source builds are not allowed.
You should create separate directory for build files."

現在のディレクトリ/ home/jinha/OCV/build/opencvにはCMakefiles.txtファイルが含まれているため、問題はありません。コマンドでディレクトリを変更しようとしましたが、すべて同じエラーが発生します。この問題に関する他の回答を見たので、コマンドを実行する前に毎回CMakeFilesフォルダーとCMakeCache.txtファイルを消去しましたが、どれも機能しませんでした。ありがとう。

31
정진하

(別の場所に)別のビルドディレクトリを作成し、そこでcmakeを実行する必要があります。例えば:

mkdir my_build_dir
cd my_build_dir
rm ../CMakeCache.txt
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/jinha/OCV/source

この例の..に注意してください。ソースを探す場所をcmakeに指示します。

再度ビルドする前にCMakeCache.txtを削除しなかった場合、このエラーが表示されます。したがって、cmakeを実行する前に必ずCMakeCache.txtを削除してください。

84
John Zwinck

sources からOpenCVソースをダウンロードして解凍したら、簡単なコマンドファイルinstall.shを作成する必要があります。たとえば、作業ディレクトリは/ home/user/myopencvになります

したがって、/ home/user/myopencv/install.shには次のコードが含まれます。

#!/bin/bash

rm CMakeCache.txt
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local 
make
make install
make clean

chmod 777 install.sh
./install.sh

そして結局、これらの実行可能ファイルを取得します。

root@cartman:/usr/local/bin# ls -las | grep opencv
 32 -rwxr-xr-x  1 root root   29888 апр 20 18:10 opencv_annotation
244 -rwxr-xr-x  1 root root  247608 апр 20 18:10 opencv_createsamples
244 -rwxr-xr-x  1 root root  247504 апр 20 18:10 opencv_haartraining
 20 -rwxr-xr-x  1 root root   18600 апр 20 18:10 opencv_performance
288 -rwxr-xr-x  1 root root  294592 апр 20 18:10 opencv_traincascade
 16 -rwxr-xr-x  1 root root   14288 апр 20 18:10 opencv_version
 60 -rwxr-xr-x  1 root root   61040 апр 20 18:10 opencv_visualisation

楽しい!

4
Orlov Const