私は初めてのアプリケーションを Unicode で作成しようとしていますが、ユニコードに対応できないアプリケーションがまだたくさんある理由を理解しています。可能な限り utf-8 (および std::string) を使用することを提案するいくつかの記事に乗りました。私はクロス プラットフォームである必要があり、実際に Windows を扱おうとしています。多くの正規表現が必要で、boost が非常に便利であることがわかったので、ICU でコンパイルしようとしていますが、丸一日失敗してしまいました。ICU (5.2) を使用して msvc10.0 でブースト (1.54) をコンパイルすることに成功した人がいるのだろうか?
私はすべての bjam の組み合わせを試しました (最初にロケールをコンパイルしようとしました)。成功せず、次のように少し難解になりました。
>.\bjam --with-locale -sHAVE_ICU=1 -sICU_PATH=<ICU_path> stage
>.\bjam --with-locale -sHAVE_ICU=1 -sICU_PATH=<ICU_path> -a stage
>.\bjam --with-locale -sICU_PATH=<ICU_path> stage
>.\bjam --with-locale -sICU_PATH=<ICU_path> -a stage
>.\bjam --with-locale stage
>.\bjam --with-locale -a stage
>.\bjam --with-locale -sHAVE_ICU=1 -sICU_PATH=<ICU_path> install
>.\bjam --with-locale -sHAVE_ICU=1 -sICU_PATH=<ICU_path> -a install
>.\bjam --with-locale -sICU_PATH=<ICU_path> install
>.\bjam --with-locale -sICU_PATH=<ICU_path> -a install
>.\bjam --with-locale install
>.\bjam --with-locale -a install
...
ご覧のとおり、私はブーストにあまり詳しくありません。同じことをしようと不平を言う人はほとんどいませんでしたが、古いバージョンでは、彼らの解決策は私にはうまくいきませんでした。ICU バイナリがデバッグ ライブラリと一緒に配布されていないことに気付いたので、自分で ICU をコンパイルしましたが、何も解決しませんでした (また、リリース バリアントのみで bjam を使用してみました)。
また、mak ファイル (boost ロケール フォルダー内の vc10.mak) を使用してコンパイルしようとしましたが、1.53 バージョンのライブラリが生成されました。これは mak ファイルの間違いだと思ったので、mak ファイルの 1.53 を 1.54 に置き換えてから再コンパイルしようとしましたが、何もすることがなく、「has_icu builds」は「no (cached)」と表示され、私の一部の ICU スタッフを使用するアプリケーションは、まだリンクに失敗しました。
私はまだブーストと Unicode のすべての初心者ですが、ICU でブーストの最新バージョンをコンパイルすることは不可能ですか? さらに、ブーストからのエラーレポート/ログが見つかりません。
ご協力いただきありがとうございます !
カリーズ