【问题标题】:Undefined symbols for architecture i386: for OpenCV project架构 i386 的未定义符号:用于 OpenCV 项目
【发布时间】:2014-04-14 10:37:06
【问题描述】:

我正在尝试构建this project,但它显示在错误下方,

Undefined symbols for architecture i386:
  "cv::merge(std::vector<cv::Mat, std::allocator<cv::Mat> > const&, cv::_OutputArray const&)", referenced from:
      -[RRMainViewController colorSobelEdge:isVertical:] in RRMainViewController.o
  "cv::split(cv::Mat const&, std::vector<cv::Mat, std::allocator<cv::Mat> >&)", referenced from:
      -[RRMainViewController colorSobelEdge:isVertical:] in RRMainViewController.o
  "cv::Exception::Exception(int, std::string const&, std::string const&, std::string const&, int)", referenced from:
      -[RRMainViewController floodFillPostprocess:WithColor:] in RRMainViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我已经添加了 OpenCV.framework 并在 .pch 文件中添加了这一行

#ifdef __cplusplus
#import <opencv2/opencv.hpp>
#endif

在项目中添加了这个库

libstdc++.6.0.9.dylib
libc++.dylib
libz.1.2.5.dylib

但仍然出现上述错误..请帮助...thanx提前..

这是我的构建阶段的屏幕截图

================================================ ==================
已解决
This@karthika 的回答帮助了我。

【问题讨论】:

  • 反对者请发表评论,以便我们知道这个问题的问题所在。
  • 好像找不到你的opencv文件所在目录?你检查路径了吗?
  • @Constantine 我已在根文件夹中添加了 Opencv.framework,因此将框架搜索路径更改为根目录和未找到目录错误消失但 Opencv 仍然出现错误。

标签: ios iphone opencv


【解决方案1】:

构建阶段未添加 Opencv 框架或其他一些文件。转到项目设置->构建阶段->将二进制文件与库链接并检查列表中是否存在 opencv。否则单击 + 并添加它 然后进入构建阶段以编译源代码并确保 RRMainViewController.m 存在于列表中。否则点击 + 并添加它

这个答案也可能对您有所帮助:Undefined symbols for architecture i386: _OBJC_CLASS_$_SKPSMTPMessage", referenced from: error

【讨论】:

  • 感谢回答。这两个文件都存在于构建路径中。请看截图
  • 再试一件事,在左侧面板中单击您的班级名称RRMainViewController.m,然后将扩展名更改为.mm,即RRMainViewController.mm。有时 C++ 代码需要扩展 .mm 才能运行,即使类代码是用 Objective-c 编写的,但 opencv 是用 C++ 编写的
  • 感谢您的建议,尝试过不影响任何事情.. :(
猜你喜欢
  • 2011-08-14
  • 2011-10-30
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多