【问题标题】:OpenCV on C++/Namespace issue?C++/命名空间问题上的 OpenCV?
【发布时间】:2018-02-26 22:13:39
【问题描述】:

我是 C++ 新手,所以在我的 C++ 项目中使用 openCV 时遇到了一些麻烦。我使用 Xcode 作为 IDE。

所以我用 brew 安装 opencv 使用两个命令行:

brew install opencv3 --with-ffmpeg --with-tbb --with-contrib
brew reinstall opencv3 --HEAD --with-python3 --with-ffmpeg --with-tbb --with-contrib

我检查了添加到我的项目的路径以使用递归加载库,所以我在 Xcode 上添加了头路径和库的路径:

/usr/local/Cellar/**

我也试过用另一种方式安装它,但仍然遇到同样的问题:

brew install opencv

并添加路径:

/usr/local/include/**

自从检测到库后一切似乎都正常,但导入不起作用,因为我在 openCV 文件中遇到命名空间错误,例如:

No type named 'unique_ptr' in namespace 'std'
No member named 'allocator_traits' in namespace 'std'; did you mean 'allocator_arg_t'?

我在网上查了一下,可能是因为 C++ 语言方言或标准库,但我使用的是 GNU ++ 14 和 libc++ 。从我发现它应该在该配置中工作,但我仍然遇到问题。你有什么想法吗?

编辑:我什至还没有尝试使用它,我只是使用了包含并打印了一个你好:

#include <iostream>
#include "cv.h"

int main(int argc, char *argv[]){

std::cout<<"hello";
}

我也试过用 cv.hpp 代替 cv.h,还是不行

非常感谢!

【问题讨论】:

  • 您是否包含正确的标题?请提供minimal reproducible example
  • 是的,我什至没有使用 opencv,只是尝试包含它:#include #include "cv.h" int main(int argc, char *argv[]){ std: :cout

标签: c++ opencv namespaces


【解决方案1】:

我认为您使用的#include 路径不正确,如果您查看OpenCV Example,则需要以下内容才能让 OpenCV 3.0 打开图像:

#include <opencv2/core/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui/highgui.hpp>

这些都不像您拥有的标头,这些标头可能适用于旧版本。

这个tutorial 看起来是一个非常明智的启动和运行 xcode,底部的示例看起来是一个更好的开始

【讨论】:

  • 嗨!我尝试了您发送给我的链接底部的示例,小心添加了您显示的给定包含的路径。但我仍然遇到完全相同的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-04
  • 1970-01-01
  • 2012-10-13
  • 2011-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多