c++ - 使用 iconv 为 iOS 构建 Boost.Locale

标签 c++ ios boost boost-locale b2

我目前正在尝试为 iOS 构建 Boost.Locale,但我无法找到 iconv 库(我正在为 iOS 成功构建 Boost 的其他部分,例如 thread文件系统)。

我试图让 Boost.Build 自己找到它,我试图将 ICONV_PATH 变量设置为指向 iPhoneOS SDK iconv 库。检查 Boost.Locale 中的 Jamfile,我偶然发现了这条规则:

lib iconv 
  : 
  : <search>$(ICONV_PATH)/lib <link>shared <runtime-link>shared
  :
  : <include>$(ICONV_PATH)/include 
  ;

所以我想设置-sICONV_PATH/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.4.sdk/usr 就足够了,因为这个目录包含一个 lib 和一个包含 iconv 库和 header 的 include 文件夹,但 Boost 仍然找不到它,并吐出:

iconv (libc)             : no
iconv (separate)         : no
icu                      : no
icu (lib64)              : no
Boost.Locale needs either iconv or ICU library to be built.

请注意,我总是使用 --reconfigure 选项调用 b2,因此它不是先前调用的缓存结果(它会有尾随 (cached) 在上面的列表中。

那么,有没有办法将 Boost 正确指向 iOS SDK 中的 iconv 实现?如果可能,我想避免构建单独的 iconv。

最佳答案

我遇到了类似的问题。经过一些挖掘和一些红色鲱鱼后,我了解到 boost 通过编译 has_iconv.cpp 程序来检测 iconv。在我的例子中(使用很多人似乎用来为 iOS 编译的 boost.sh 脚本)在 config.log 中有很多编译错误是由 user-config.jam 中的不正确 using-syntax 引起的。所以问题 - 至少对我来说 - 不是设置 ICONV_PATH 而是让检测程序编译!也许你也有类似的问题。

我做了一个full write up of finding in my blog如果你有兴趣。

关于c++ - 使用 iconv 为 iOS 构建 Boost.Locale,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33413023/

相关文章:

c++ - 包装类的静态成员变量的一种简短方法

c++ - scons 在一个模块中设置 CXXFLAGS 会影响另一个模块

ios - iOS是否可以通过2个值对NSDictionary的键进行排序?

c++ - 即使使用 -lboost_thread 也会出现 "undefined reference"错误

C++ Boost::MPL fold 示例 - 参数数量错误

c++ - 如何在 while 循环中重新初始化 vector ?

iphone - 尝试实现 UI LongPressGesture 时应用程序崩溃

iOS 操作 :@selector issue when UIButton is added to another UIButton. 操作仅在按钮相交的地方有效

c++ - 将人类可读的日期转换为毫秒并在不丢失信息的情况下再次返回

C++如何使用fstream读取带空格的制表符分隔文件