Visual Studio ICUライブラリの静的リンク
カテゴリー: ぷろぐらみんぐ/メモ
2015-12-02
dllもstaticも両方ほしい欲張りな人の場合。
ソースフォルダを2つ用意してください。簡単確実な分離方法です。
パッチファイルだとバージョンを差し替えるたび不具合が出ると面倒なので
専用書き換えスクリプトで自動処理します。
.vcxprojを自動呼出しで一括置換します
変更箇所は下記にあります
今回は、ネタで終了。
サイズの問題と面倒なので、
環境変数pathに登録したマイbinフォルダにicuのdllいれておしまい。
ここでは、Releaseを静的リンクとして上書きします
構成の種類
ダイナミックライブラリ(.dll)
→ スタティックライブラリ(.lib)
C/C++ : コード生成 ランライムライブラリ
マルチスレッドDLL(/MT)
→ マルチスレッド(/MT)
全般
ターゲット名 $(ProjectName)
手動で変更するには、
<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
ソースフォルダを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