cmake中"不允许使用源内构建"

정진하*_*정진하 36 linux opencv cmake

我是cmake的新手,我只是用它在我的ubuntu linux上安装opencv.这是我跑的命令:

"cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/jinha/OCV/source"
Run Code Online (Sandbox Code Playgroud)

然后它返回错误:

"FATAL: In-source builds are not allowed.
You should create separate directory for build files."
Run Code Online (Sandbox Code Playgroud)

我当前的目录/ home/jinha/OCV/build/opencv确实包含CMakefiles.txt文件,所以这不是问题所在.我试图在命令中更改目录,但它们都引发了同样的错误.我在这个问题上看到了其他答案,所以每次运行命令之前我都会删除CMakeFiles文件夹和CMakeCache.txt文件,但是没有一个能够工作.谢谢.

Joh*_*nck 97

它希望您创建一个单独的构建目录(任何地方),并在那里运行cmake.例如:

mkdir my_build_dir
cd my_build_dir
rm ../CMakeCache.txt
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/jinha/OCV/source
Run Code Online (Sandbox Code Playgroud)

请注意..,此示例告诉cmake在哪里查找源.

如果您CMakeCache.txt在再次构建之前未删除,它仍将显示此错误. 所以,请记得CMakeCache.txt在运行前先删除cmake.

  • 感谢您注意删除`CMakeCache.txt`. (30认同)

Orl*_*nst 6

成功下载并从文件解压缩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
Run Code Online (Sandbox Code Playgroud)

下一个

chmod 777 install.sh
./install.sh
Run Code Online (Sandbox Code Playgroud)

然后,您将获得这些可执行文件:

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
Run Code Online (Sandbox Code Playgroud)

请享用!