【问题标题】:ICU files needed during run time运行时所需的 ICU 文件
【发布时间】:2016-07-20 05:17:05
【问题描述】:

为了理解 ICU 及其 API,我编写了一个示例程序,该代码将链接到的库是 -licuuc 和 -licui18n。由于 libicu-devel.x86_64 软件包已安装在测试系统上,因此这些库可用。

为了了解如何将 ICU 库与我的面向 centOS 平台的应用程序集成,我偶然发现了这个page,上面写着:

为了简单地使用 ICU 的预定义数据,可以安全地跳过这部分数据管理。数据被构建到一个库中,该库与 ICU 的其余部分一起加载。应用程序或执行环境都不需要特定的操作或设置。

这表示如果应用程序无意添加自己的数据,则可以使用库中可用的数据。在我安装了 ICU 的测试系统上,这些是文件:

$ sudo find . -name "*icu*"
./opt/rbt_boost/include/boost/regex/icu.hpp
./lib64/libicui18n.so.42
./lib64/libicui18n.so.42.1
./lib64/libicuuc.so.42.1
./lib64/libicuuc.so.42
./usr/lib64/libicui18n.so.42
./usr/lib64/libicule.so
./usr/lib64/libicuio.so.42
./usr/lib64/libicutu.so
./usr/lib64/libiculx.so.42.1
./usr/lib64/pkgconfig/icu.pc
./usr/lib64/libicui18n.so
./usr/lib64/libicui18n.so.42.1
./usr/lib64/libicule.so.42.1
./usr/lib64/libicuuc.so.42.1
./usr/lib64/libiculx.so
./usr/lib64/libicuuc.so.42
./usr/lib64/libicuio.so.42.1
./usr/lib64/icu
./usr/lib64/libicudata.so.42
./usr/lib64/libicule.so.42
./usr/lib64/libicutu.so.42.1
./usr/lib64/libicuio.so
./usr/lib64/libicudata.so
./usr/lib64/libicudata.so.42.1
./usr/lib64/libiculx.so.42
./usr/lib64/libicutu.so.42
./usr/lib64/libicuuc.so
./usr/bin/icu-config
./usr/share/icu
./usr/share/man/man1/icu-config.1.gz
./var/lib/yum/yumdb/l/e59bf24facac0acba1622a5180d0e2a22dda69c8-libicu-devel-4.2.1-9.1.el6_2-x86_64
./var/lib/yum/yumdb/l/7062f72703a5afbf894d617b94db3d4769fe643d-libicu-4.2.1-9.1.el6_2-x86_64

问题:

  1. 哪些 ICU 库(和文件)应与应用程序一起打包以使 ICU 数据在运行时可用?如前所述,我使用 libicui18n 和 libicuuc 库进行链接,因此需要存在这些库。

  2. 除了上述两个库之外,libicudata,顾名思义,似乎是显而易见的候选者。对吗?

  3. 是否有静态版本的 libicui18n 和 libicuuc 库可供使用或必须构建它?

一般来说,将 ICU 与产品集成的流程是什么?

谢谢!

【问题讨论】:

    标签: icu


    【解决方案1】:
    1. ICU 总是需要链接到它的数据库。
    2. 这是一个very general 讨论,关于您启用了哪些库。
    3. ICU 必须使用--enable-static 选项构建以允许静态链接。

    理想情况下,您将希望使用pkg-config 来管理您与 ICU 的联系。

    如果您在 centOS 上,而不是静态链接(令人头疼),您可能会考虑仅针对 libicu-devel 软件包进行编译(使用上面提到的 pkg-config),然后在运行时您的用户可以只包含合适的libicu 包。

    【讨论】:

      猜你喜欢
      • 2015-06-26
      • 2021-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-27
      相关资源
      最近更新 更多