相关文章推荐
无聊的金针菇  ·  SQL Server 2008 ...·  2 月前    · 
叛逆的灌汤包  ·  wayland ...·  5 月前    · 
文质彬彬的拐杖  ·  org.springframework.ht ...·  1 年前    · 

cmake中的 "不允许源内构建"。

66 人关注

我是cmake的新手,我只用它在我的ubuntu linux上安装opencv。 下面是我运行的命令。【替换代码0

Then it returns the error:

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

我的当前目录,~/OCV/build/opencv,确实包含CMakefiles.txt文件,所以这不是问题所在。我试着在我的命令中改变目录,但它们都引发了同样的错误。我看到了关于这个问题的其他答案,所以我每次在运行命令前都会擦除CMakeFiles目录和CMakeCache.txt文件,但都没有成功。

linux
opencv
cmake
WannabeArchitect
WannabeArchitect
发布于 2017-08-05
2 个回答
John Zwinck
John Zwinck
发布于 2018-04-20
已采纳
0 人赞同

它希望你创建一个单独的构建目录(任何地方),并在那里运行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

哇,非常感谢!这是我的第一个问题。非常感谢!完全成功了。
CMAKE只是聪明地保留了你的来源,因为" pristine ",要求你在另一个目录中构建,以防止用对象和其他构建文件弄脏你的源代码......
@정진하:不客气。 如果这解决了你的问题,你可以点击左边的复选标记来 "接受 "这个答案。
谢谢你注意到删除 CMakeCache.txt
源目录"/Users/user/build "似乎并不包含CMakeLists.txt。
Orlov Const
Orlov Const
发布于 2018-04-20
0 人赞同

在你成功下载并解压了OpenCV的源代码后,你可以从 sources 你需要创建简单的命令文件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 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