osx使用cmake编译opencv错误记录
2017-09-22 11:55
399 查看
一个比较诡异的编译错误
In file included from /Users/gerrie/source/offical/opencv-2.4.11/3rdparty/openexr/IlmImf/ImfPreviewImage.cpp:43:
/Users/gerrie/source/offical/opencv-2.4.11/3rdparty/openexr/IlmImf/ImfCheckedArithmetic.h:66:5: error: implicit instantiation of undefined template
‘Imf::StaticAssertionFailed’
IMF_STATIC_ASSERT (!std::numeric_limits::is_signed &&
^
google不到相同的错误.看了下源码里是这样的:
/Users/gerrie/source/offical/opencv-2.4.11/modules/highgui/src/cap_ffmpeg_impl.hpp
原因是第二行编译器没有识别模板定义,osx编译器和linux有差异.
template <> struct StaticAssertionFailed {}
这样改就可以了.
——————-issue 2———————————
error: “libswscale is necessary to build the newer OpenCV ffmpeg wrapper”
解决:
brew info ffmpeg 查看安装信息
其实我是安装过的.
在 /usr/local/lib 可以找到相关库.
所以
/Volumes/more/source/offical/opencv-2.4.11/modules/highgui/src/cap_ffmpeg_impl.hpp
修改为
In file included from /Users/gerrie/source/offical/opencv-2.4.11/3rdparty/openexr/IlmImf/ImfPreviewImage.cpp:43:
/Users/gerrie/source/offical/opencv-2.4.11/3rdparty/openexr/IlmImf/ImfCheckedArithmetic.h:66:5: error: implicit instantiation of undefined template
‘Imf::StaticAssertionFailed’
IMF_STATIC_ASSERT (!std::numeric_limits::is_signed &&
^
google不到相同的错误.看了下源码里是这样的:
/Users/gerrie/source/offical/opencv-2.4.11/modules/highgui/src/cap_ffmpeg_impl.hpp
template <bool b> struct StaticAssertionFailed{}; template <> struct StaticAssertionFailed <true>; //template <> struct StaticAssertionFailed <true> {}; #define IMF_STATIC_ASSERT(x) \ do {StaticAssertionFailed <x> staticAssertionFailed;} while (false)
原因是第二行编译器没有识别模板定义,osx编译器和linux有差异.
template <> struct StaticAssertionFailed {}
这样改就可以了.
——————-issue 2———————————
issue:
error: “libswscale is necessary to build the newer OpenCV ffmpeg wrapper”解决:
brew info ffmpeg 查看安装信息
其实我是安装过的.
在 /usr/local/lib 可以找到相关库.
所以
/Volumes/more/source/offical/opencv-2.4.11/modules/highgui/src/cap_ffmpeg_impl.hpp
//@wei #ifdef WIN32 #define HAVE_FFMPEG_SWSCALE 1 #include <libavcodec/avcodec.h> #include <libswscale/swscale.h> #else
修改为
//@wei #ifdef WIN32 #if 1 #define HAVE_FFMPEG_SWSCALE 1 #include <libavcodec/avcodec.h> #include <libswscale/swscale.h> #else
相关文章推荐
- osx使用cmake编译opencv错误记录
- Cmake编译OpenCV和如何在VS工程中配置来使用编译后的OpenCV进行跟踪调试问题
- cmake编译opencv2.2时,出现错误解决方法
- cmake 编译 vs2010+opencv2.4.11 配置错误
- 基于windows下使用CMake和VS2013编译OpenCV的环境搭建
- CMAKE编译opencv源码错误解决办法
- Windows下使用CMake+MinGw编译opencv
- 使用GCC和CMake编译OpenCV
- [OpenCv]Win10 X64 + VS2015 + CMake3.6.1 编译OpenCv3.1.0记录
- 使用Opencv时编译错误
- 【VS开发】【计算机视觉】使用opencv静态库编译程序时爆出错误的解决方案
- 使用VS2005编译freetype的动态链接库--我加了一些错误修改的记录
- 使用cmake编译opencv3.1.0时hash mismatch的解决方法
- Centos7下使用cmake编译opencv2.4.10
- boost , opencv项目使用cmake编译
- 使用交叉编译工具编译opencv的记录
- 使用 gcc 和 CMake 编译简单的 OpenCV 程序
- win 8.1 vs2010使用CMake 2.8.1编译OpenCV2.4.4
- 为什么要使用CMake+VS编译OpenCV的源码
- 使用CMake + MinGW + Eclipse 开发OpenCV --编译,使用以及可能遇到的问题详解