OSX上的openCV和libtiff库不兼容
Incompatible openCV and libtiff libs on OSX
我正在使用一个金字塔型tiff文件。但是,OpenCV
不支持金字塔型tiff文件,因此我尝试使用libtiff 4.0.3
提取所需的层/目录/分辨率,然后将其传递给OpenCV
进行处理。
我包括以下内容:
#include "tiffio.h"
#include "opencv2/highgui/highgui.hpp"
但这样做在types_c.h
中给了我以下内容:
typedef int64_t int64;
Typedef redefinition with different types ('int64_t(aka 'long long') vs 'long')
这两个库中的每一个似乎都对int64_t进行了不同的定义。
我已经使用homebrew
安装了这两个库,所以我不想编辑这些库,因为这会导致更新问题,给我团队的未来开发人员带来痛苦,等等。
有没有一种方法可以在不修改的情况下使用这两个库?
由于这两个库都"polute"了带有定义的全局命名空间(您可以看到,在第三方库中拥有合适的命名空间是多么重要),因此无法将两者都包含到全局命名空间中。您已经将其中一个封装在用户定义的命名空间中,如下所示:
namespace libtiff {
#include "tiffio.h"
}
#include "opencv2/highgui/highgui.hpp"
这将解决编译问题,尽管我不确定这个解决方案是否方便使用,因为您必须使用libtif::prefix的libtiff成员,
相关文章:
- 我收到同义重复编译器错误。我应该如何修复"类型"X"的参数与类型"X"的参数不兼容?
- 字符类型转换不兼容
- Qt:如何使不兼容的发送方/接收方参数兼容?
- 视觉工作室 2017;启用 /permissive 时,类型 "const wchar_t *" 的参数与类型 "PWSTR" 的参数不兼容
- 使用不兼容的分配器复制分配无序列图
- 类型为 "int*" 的参数与 C++ 中错误类型"int**"参数不兼容
- 该对象具有与成员函数不兼容的类型限定符.为什么会出现此错误?
- 我正在尝试将表的地址传递给要在另一个函数中使用的指针,但得到不兼容的指针类型
- 为什么范围算法与 std 的迭代器不兼容?
- Winpcap Findalldevs const char * 与 char * 不兼容
- C++ 类型的参数与 void (__cdecl*)(void) 类型的参数不兼容,当调用 std::atexit()
- 将"std::string {aka std::basic_string}"赋值中的不兼容类型<char>
- 如何在C++中停止调用不兼容的方法?
- OPENCL 警告:不兼容的指针类型将'float __global[16]'传递给类型为 '__global float4 的参数 *
- 函数范围的静态变量如何导致与共享库中函数代码的未来使用不兼容
- 如何修复"方法的类型与 PInvoke 不兼容"
- C++不兼容的迭代器类型
- 编译器错误"在if语句中分配不兼容的类型"
- 程序无法编译:将 'int (*)[3][3]' 赋值为 'int [9][3][3]' 中的不兼容类型
- OSX上的openCV和libtiff库不兼容