【问题标题】:Building Opencv using cmake giving errors involving c++11使用 cmake 构建 Opencv 给出涉及 c++11 的错误
【发布时间】:2017-12-07 22:23:02
【问题描述】:

我在 Ubuntu 16.04 上编译 opencv 时遇到 cmake 命令问题。当我执行 cmake 命令时,我得到了错误

CMakeLists.txt:11 处的 CMake 错误(消息): 致命:不允许进行源内构建。 您应该为构建文件创建一个单独的目录。

我已将 opencv 源文件提取到名为 opencv-3.3.1 的文件夹中 然后我遵循了本网站中提到的所有流程

https://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/

我使用以下命令:: cd opencv-3.3.1/ mkdir build/ cd build/ cmake -D CMA KE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=OFF -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.1/modules -D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python -D BUILD_EXAMPLES=ON ..

但是我收到了这个错误!

可能的问题是什么?

CMakeError.log 显示

错误“不支持 C++11

我尝试将set(CMAKE_CXX_FLAGS "-std=c++11") 添加到 CMakeLists.txt 的开头,并将标志 -DENABLE_CXX11=ON 包含到 CMAKE 命令标志中。但似乎没有任何效果。

请帮忙!!

【问题讨论】:

  • 正在使用什么 cmake 生成器?可能是g++,但是什么版本?
  • gcc 版本 5.4.0

标签: python opencv c++11 ubuntu cmake


【解决方案1】:

也许在你的 OpenCV 根目录 opencv-3.3.1 中有一个名为 CMakeCache.txt 的文件。

删除它!

那是因为之前有人在根目录opencv-3.3.1内执行过cmake .

【讨论】:

    【解决方案2】:

    尝试添加:

    add_definitions(-std=c++11)
    

    到您的 cmakelists 文件。

    【讨论】:

    • 代替这条线 :: set(CMAKE_CXX_FLAGS "-std=c++11") ??
    • 现在显示这个错误 :: CMake Error at CMakeLists.txt:12 (message): FATAL: In-source builds are not allowed. You should create a separate directory for build files.
    • 我从build 文件夹中调用cmake 命令。 CMakeLists.txt 文件位于 build 文件夹之外。但是还是这个错误。
    • 好吧,至少我们已经清除了您的第一个错误。现在让我们找出其余部分出错的地方。首先,您应该删除构建文件夹中的所有文件以开始清理。然后cd 进入你现在空的build 文件夹并执行sudo cmake ..。如果失败,那么我们可以从那里开始工作,如果成功,您应该一次添加一个指令,直到找到问题为止。
    猜你喜欢
    • 1970-01-01
    • 2013-05-25
    • 2015-06-17
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    • 2020-11-02
    • 1970-01-01
    相关资源
    最近更新 更多