【问题标题】:Problems with CMake whilst building OpenCV构建 OpenCV 时 CMake 的问题
【发布时间】:2011-09-18 12:49:38
【问题描述】:

我正在尝试在足够小的 VPS 上构建最新版本的 OpenCV,但在使用 CMake 时遇到了麻烦。我不熟悉 CMake,所以我发现很难解释日志输出以及如何继续调试问题。

从命令行(未安装 x11)并在 devel/OpenCV/-2.3.1/release 中发出以下命令

sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. 

结果如下:

-- Extracting svn version, please wait...
-- SVNVERSION: exported
-- Detected version of GNU GCC: 44 (404)
-- Could NOT find ZLIB  (missing:  ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
-- Could NOT find ZLIB  (missing:  ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
-- Could NOT find PNG  (missing:  PNG_LIBRARY PNG_PNG_INCLUDE_DIR)
-- Could NOT find TIFF  (missing:  TIFF_LIBRARY TIFF_INCLUDE_DIR)
-- Could NOT find JPEG  (missing:  JPEG_LIBRARY JPEG_INCLUDE_DIR)
--     Use NumPy headers from: /usr/lib/python2.6/site-packages/numpy-1.6.1-py2.6-linux-i686.egg/numpy/core/include
--     Found Sphinx 0.6.6: /usr/bin/sphinx-build
-- Parsing 'cvconfig.h.cmake'
--
-- General configuration for opencv 2.3.1 =====================================
--
--     Built as dynamic libs?:     YES
--     Compiler:                   /usr/bin/c++
--     C++ flags (Release):          -Wall -pthread -march=i686 -ffunction-sections  -O3 -DNDEBUG  -fomit-frame-pointer -msse -msse2 -mfpmath=387 -DNDEBUG\

--     C++ flags (Debug):            -Wall -pthread -march=i686 -ffunction-sections  -g  -O0 -DDEBUG -D_DEBUG -ggdb3
--     Linker flags (Release):
--     Linker flags (Debug):
--
--   GUI:
--     GTK+ 2.x:                   NO
--     GThread:                    NO
--
--   Media I/O:
--     ZLib:                       build
--     JPEG:                       build
--     PNG:                        build
--     TIFF:                       build
--     JPEG 2000:                  FALSE
--     OpenEXR:                    NO
--     OpenNI:                     NO
--     OpenNI PrimeSensor Modules: NO
--     XIMEA:                      NO
--
--   Video I/O:
--     DC1394 1.x:                 NO
--     DC1394 2.x:                 NO
--     FFMPEG:                     NO
--       codec:                    NO
--       format:                   NO
--       util:                     NO
--       swscale:                  NO
--       gentoo-style:             NO
--     GStreamer:                  NO
--     UniCap:                     NO
--     PvAPI:                      NO
--     V4L/V4L2:                   FALSE/FALSE
--     Xine:                       NO
--
--   Other third-party libraries:
--     Use IPP:                    NO
--     Use TBB:                    NO
--     Use ThreadingFramework:     NO
--     Use Cuda:                   NO
--     Use Eigen:                  NO
--
--   Interfaces:
--     Python:                     NO
--     Python interpreter:         /usr/bin/python2.6 -B (ver 2.6)
--     Python numpy:               YES
--     Java:                       NO
--
--   Documentation:
--     Sphinx:                     /usr/bin/sphinx-build (ver 0.6.6)
--     PdfLaTeX compiler:          NO
--     Build Documentation:        NO
--
--   Tests and samples:
--     Tests:                      YES
--     Examples:                   NO
--
--   Install path:                 /usr/local
--
--   cvconfig.h is in:             /home/ec2-user/OpenCV-2.3.1/release
-- -----------------------------------------------------------------
--
-- Configuring incomplete, errors occurred!

另外,当我运行命令时,我似乎也收到以下错误消息 CMakeLists.txt:44 (set_property) 处的 CMake 错误: set_property 给定无效范围缓存。有效范围是 GLOBAL, 目录、目标、源、测试。

第 42-45 行如下:

set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configs" FORCE)
if(DEFINED CMAKE_BUILD_TYPE)
    set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES} )
endif()

但是我不确定这意味着什么?有没有人指点一下?

非常感谢

【问题讨论】:

    标签: gcc image-processing opencv cmake


    【解决方案1】:

    检查您的 CMake 版本。在 2.8.0 中实现了对 set_property(CACHE ... ) 的支持。

    如果升级 CMake 不是您的选择 - 我想评论第 44 行是安全的。它似乎用于为 GUI 中的下拉列表创建值。

    http://www.kitware.com/blog/home/post/82

    http://blog.bethcodes.com/cmake-tips-tricks-drop-down-list

    【讨论】:

    • 啊哈我似乎有 2.6 版的 CMake。当我注释掉那些有问题的行时,一切都很顺利!非常感谢
    【解决方案2】:

    我在构建 opencv 时遇到了很多错误,这些错误是由错误版本的 OpenCV 引起的。我使用 cmake 3.0 成功构建了 opencv 3.0(尽管 cmake 2.6 对我不起作用)。然后当我发现我不得不降级到 opencv 2.4.9 时,我不得不回到我系统的默认 cmake 2.6,因为 cmake 3.0 不起作用。在 opencv 中运行 cmake 时,首先检查是否出错是版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-25
      • 1970-01-01
      • 1970-01-01
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多