很多人都注意到了; zxing在最新的xcode中不起作用(4.5/ios 6)
这是用例:
- 从trunk查看最新版本(因为已经添加了一些修复)
- 使用ios 6.0在xcode 4.5中创建单个视图应用程序
- 使用README添加依赖项,路径等(只需按步骤操作)
- 添加zxingcontroller调用类(重命名为mm)
模拟器和设备的编译都失败它显示31错误,如下所示:
Undefined symbols for architecture i386:
"std::string::c_str() const", referenced from
Run Code Online (Sandbox Code Playgroud)
所有31个错误都是相似的,区别在于符号名称
可能有人知道如何用这个用例来解决它?
ps如果你有以前的Xcode的应用程序,它的工作原理.只有在Xcode 4.5中创建新应用程序时才会出现问题
Til*_*ill 32
您遇到的问题似乎与C++标准库有关.
实际上,每当您看到链接器与标准库对象(例如std::string
)的关系失败时,您应该检查所有链接库和应用程序项目本身的项目设置.他们通常需要匹配!
原始ScanTest(将ZXingWidget构建为子项目)使用以下设置,如果您按原样使用库,则需要匹配您的App构建设置.
为了确保,我使用Xcode 4.5创建了一个全新的项目.该项目使用ZXingWidget作为预建库但不是作为子项目 - 我不喜欢子项目的东西不是我自己的 - 虽然这个专业不会影响结果.
重要的设置是C++标准库 - 确保将其设置为Compiler Default
澄清一点
实际上,您不需要使用C++标准库,您也可以使用支持C++ 11的LLVM C++标准库.但是,您必须在与项目链接的所有项目,子项目和库中使用完全相同的库.因此,如果您坚持使用该库的更新版本(C++ 11支持),那么您还必须使用这些设置构建ZXing库.
最后但并非最不重要的是,确保您的架构和有效架构设置匹配所有项目和子项目(修复常见的armv7s
链接器问题).
首先,确保您的架构设置armv7
armv7s
在所有项目中设置.然后还将所有项目的项目设置编辑为Valid Architecture armv7s
armv7
.
归档时间: |
|
查看次数: |
13047 次 |
最近记录: |