2016-05-03 7 views
1

ICUとそのAPIを理解するために、私はサンプルプログラムを書いており、このコードがリンクするライブラリは-licuucと-licui18nです。 libicu-devel.x86_64パッケージがテストシステムにインストールされたため、ライブラリが利用可能でした。この節、ICUの事前に定義されたデータを簡単に利用するために実行時に必要なICUファイル

を:

はCentOSのプラットフォームを対象としている私のアプリケーションでICUライブラリを統合する方法を理解するために私の探求では、私が言うこれ、このpageに出くわしデータ管理を安全にスキップすることができます。データは、残りの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 

質問:するICUデータ用のアプリケーションをパッケージ化する必要があり、これらのICUライブラリ(およびファイル)の

  1. ICUがインストールされている私のテストシステムでは、これらのファイルであります実行時に利用できますか?先に述べたように、私はリンクのためにlibicui18nとlibicuucライブラリを使用していたので、これらは存在する必要があります。

  2. 上記の2つのライブラリとは別に、libicudataが名前を借りていることは明らかな候補のようです。正しい?

  3. 静的バージョンのlibicui18nおよびlibicuucライブラリが使用できますか、それともビルドする必要がありますか?

一般に、ICUを製品と統合するプロセスはどのようなものですか?

ありがとうございます!

答えて

0
  1. ICUは常にそのデータライブラリとリンクする必要があります。
  2. ここでは、あなたがエンゲージしたライブラリについての説明をvery generalとしています。
  3. 静的なリンケージを可能にするには、ICUを--enable-staticオプションで構築する必要があります。

理想的には、pkg-configを使用して、ICUとの連携を管理することができます。

静的に(頭痛を伴って)リンクするのではなく、centOS上にいる場合は、libicu-develパッケージ(上記のpkg-configを使用)を使用してコンパイルし、実行時に適切なlibicuパッケージ。