• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

objective-c - 包含 Zxing 到 Xcode 4.3 + Obj-C 的 undefined symbol

[复制链接]
菜鸟教程小白 发表于 2022-12-13 14:54:42 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

在将 ZXingWidget 包含到我之前的 iOS 项目中时,我遇到了一些问题。

这是我之前使用 XCode4.3+ARC for iOS 开始的一个项目。对于这个项目,我需要包括 ZXing 来扫描。

我已按照提供的自述文件进行操作。

  1. 复制zxing到项目根目录,添加ZXingWidget.xcodeproj项目
  2. 在构建阶段添加链接 libZXingWidget.a
  3. 将 ZXingWidget 添加到目标依赖项
  4. header 搜索路径 - 递归 $(SRCROOT)/zxing-read-only/iphone/ZXingWidget/Classes
  5. header 搜索路径 - 非递归 $(SRCROOT)/zxing-read-only/cpp/core/src
  6. 导入所有必需的 iOS 框架。

注意事项:

  • ZXing在iphone模拟器上编译运行正常
  • 我收到了大约 66 个关于 undefined symbol 的错误。 (以下示例)
  • Zxing代码是从SVN获取的(我也试过zip下载,一样但是64错误)

但我无法直接从我的代码中导入任何文件 (#import 不起作用)。

我也试过这个solution没有运气。

我还缺少任何其他可能性吗?

感谢任何帮助!

我现在得到一些错误输出。

Undefined symbols for architecture i386:
"std::ios_base::Init::Init()", referenced from:
  ___cxx_global_var_init in libZXingWidget.a(Binarizer.o)
  ___cxx_global_var_init in libZXingWidget.a(BinaryBitmap.o)
  ___cxx_global_var_init in libZXingWidget.a(Array.o)
  ___cxx_global_var_init in libZXingWidget.a(BitArray.o)
  ___cxx_global_var_init in libZXingWidget.a(BitMatrix.o)
  ___cxx_global_var_init in libZXingWidget.a(BitSource.o)
  ___cxx_global_var_init in libZXingWidget.a(Counted.o)
  ...
"std::terminate()", referenced from:
  zxing::Binarizer::Binarizer(zxing::Ref<zxing:uminanceSource>) in libZXingWidget.a(Binarizer.o)
  zxing::Binarizer::~Binarizer() in libZXingWidget.a(Binarizer.o)
  zxing::BinaryBitmap::BinaryBitmap(zxing::Ref<zxing::Binarizer>) in libZXingWidget.a(BinaryBitmap.o)
  zxing::BinaryBitmap::~BinaryBitmap() in libZXingWidget.a(BinaryBitmap.o)
  zxing::BinaryBitmap::getBlackRow(int, zxing::Ref<zxing::BitArray>) in libZXingWidget.a(BinaryBitmap.o)
  zxing::BinaryBitmap::getWidth() const in libZXingWidget.a(BinaryBitmap.o)
  zxing::BinaryBitmap::getHeight() const in libZXingWidget.a(BinaryBitmap.o)
  ...
"operator delete(void*)", referenced from:
  zxing::Binarizer::~Binarizer() in libZXingWidget.a(Binarizer.o)
  zxing::Counted::~Counted() in libZXingWidget.a(Binarizer.o)
  zxing::BinaryBitmap::~BinaryBitmap() in libZXingWidget.a(BinaryBitmap.o)
  zxing::BinaryBitmap::crop(int, int, int, int) in libZXingWidget.a(BinaryBitmap.o)
  zxing::BinaryBitmap::rotateCounterClockwise() in libZXingWidget.a(BinaryBitmap.o)
  zxing::Counted::~Counted() in libZXingWidget.a(BinaryBitmap.o)
  zxing::BitArray::~BitArray() in libZXingWidget.a(BitArray.o)
  ...
"___cxa_allocate_exception", referenced from:
  zxing::Counted::release() in libZXingWidget.a(Binarizer.o)
  zxing::Counted::release() in libZXingWidget.a(BinaryBitmap.o)
  zxing::BitArray::setRange(int, int) in libZXingWidget.a(BitArray.o)
  zxing::BitArray::isRange(unsigned long, unsigned long, bool) in libZXingWidget.a(BitArray.o)
  zxing::BitMatrix::setRegion(unsigned long, unsigned long, unsigned long, unsigned long) in libZXingWidget.a(BitMatrix.o)
  zxing::Counted::release() in libZXingWidget.a(BitMatrix.o)
  zxing::BitSource::readBits(int) in libZXingWidget.a(BitSource.o)
  ...



Best Answer-推荐答案


您需要将 main.m 重命名为 main.mm。这将告诉 Xcode 链接必要的 C++ 库,而这是缺少的。

关于objective-c - 包含 Zxing 到 Xcode 4.3 + Obj-C 的 undefined symbol ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11545341/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap