日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
2024年11月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

Visual Studio ICUライブラリの静的リンク

2015-12-02
dllもstaticも両方ほしい欲張りな人の場合。
ソースフォルダを2つ用意してください。簡単確実な分離方法です。

パッチファイルだとバージョンを差し替えるたび不具合が出ると面倒なので
専用書き換えスクリプトで自動処理します。
.vcxprojを自動呼出しで一括置換します
変更箇所は下記にあります


今回は、ネタで終了。
サイズの問題と面倒なので、
環境変数pathに登録したマイbinフォルダにicuのdllいれておしまい。



ここでは、Releaseを静的リンクとして上書きします

構成の種類
ダイナミックライブラリ(.dll)
→ スタティックライブラリ(.lib)

C/C++ : コード生成  ランライムライブラリ
マルチスレッドDLL(/MT)
→ マルチスレッド(/MT)

全般
 ターゲット名 $(ProjectName)
common icuuc
i18n icuin
io icuio
layout icule
layoutex iculx


手動で変更するには、
<ConfigurationType>DynamicLibrary</ConfigurationType>
<ConfigurationType>StaticLibrary</ConfigurationType>

<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>

ここは個別に ファイル名に応じて挿入します
</PropertyGroup>
<ItemDefinitionGroup

</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<TargetName>icuuc</TargetName>
</PropertyGroup>
<ItemDefinitionGroup


一番よい解決方法は、static用の構成を追加した staticリンクへの修正した .vcxproj パッチを開発元へなげて
なんで できんっじゃ こりゃーーと文句言うことです。

メモ
コマンドラインからbuild

"C:\Program Files\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat"
cd "ソリューションのファイルパス"
devenv.exe allinone.sln /build release

使い方: devenv.exe /?
devenv solutionfile.sln /build [ solutionconfig ] [ /project projectnameorfile [ /projectconfig name ] ]


参考サイト:http://jumble-note.blogspot.jp/2013/01/icucmsvcicu.html


PR

[PR]