您的位置:首页 > 其它

Visual Studio 2013编译ICU4C 5.31

2014-05-20 13:41 225 查看
下载了ICU,支持vs2008,工程文件在 icu/source/allinone 下,不过默认编译出来的是动态链接版本,所以需要改造成静态的,那只有修改工程配置文件啦,

一、动态库编译

1、testplug工程Debug属性-->配置属性-->链接器-->所有选项-->输出文件:

Debug Win32:“..\..\..\bin\testplug.dll”更改为“.\..\..\..\bin\testplugd.dll”

Debug x64:“..\..\..\bin64\testplug.dll”更改为“.\..\..\..\bin64\testplugd.dll”

2、stubdata工程Debug属性-->配置属性-->链接器-->所有选项:

-->输出文件:

Debug Win32:“..\..\bin\icudt53.dll”更改为“..\..\bin\icudt53d.dll”

Debug x64:..\..\bin64\icudt53.dll”更改为“..\..\bin64\icudt53d.dll”

-->生成清单:

改成:是(MANIFEST)

-->生成程序数据库文件:

Release x64: .\x64\Release\icudt.pdb-->.\..\..\lib64\icudt.pdb

Release Win32: .\x86\Release\icudt.pdb-->.\..\..\lib\icudt.pdb

Debug x64: .\x64\Debug\icudtd.pdb .\..\..\lib64\icudtd.pdb

Debug Win32: .\x86\Debug\icudtd.pdb .\..\..\lib\icudtd.pdb

-->生成调试信息:

Debug:改为:是(DEBUG)

说明:以下大部分内容摘自“serverxp”的《ICU4C 4.4 静态库的编译》

/article/9273098.html

二、静态编译

1.修改以下几个工程配置 Configuration Properties=>General=>Configuration Type:修改为Static library (.lib)

属性-->配置属性-->常规-->项目默认值-->配置类型:静态库(.lib)

2.然后修改静态库的输入路径 Configuration Properties=>General=>Librarian=>General=>OutputFile

属性-->配置属性-->常规-->常规-->目标文件名(不需加后缀.lib)
common
icuuc.lib icuucd.lib 1

ctestfw icutest.lib
icutestd.lib

i18n
icuin.lib icuind.lib 3

io icuio.lib icuiod.lib

layout icule.lib iculed.lib

layoutex iculx.lib iculxd.lib
stubdata
icudt.lib icudtd.lib 2

testplug testplug.lib testplugd.lib

toolutil icutu.lib icutud.lib

3.属性-->配置属性-->常规-->输出目录:

将Win32位工程的输出目录更改为".\..\..\lib\"或".\..\..\..\lib\"

将x64位工程的输出目录更改为".\..\..\lib64\"或".\..\..\..\lib64\"

stubdata工程属性-->配置属性-->常规-->输出目录:Win32位工程“.\..\..\lib\”或x64位工程:“.\..\..\lib64\”

4.各工程中定义U_STATIC_IMPLEMENTATION

Configuration Properties=>C/C++=>Preprocessor=>Preprocessor Definitions,加入U_STATIC_IMPLEMENTATION

属性-->配置属性-->C/C++-->预处理器-->预处理器定义

5.最后,

将所有工程由MD改为MT方式 Configuration Properties=>C/C++=>Code Generation

属性-->配置属性-->C/C++-->代码生成-->运行库

debug配置 Multi-threaded Debug DLL (/MDd) =》 Multi-threaded Debug (/MTd)

多线程调试DLL(/MDd)-->多线程调试(/MTd)

release配置 Multi-threaded DLL (/MD) =》 Multi-threaded (/MT)

多线程DLL(/MD)-->多线程(/MT)

或者(推荐方法):

将“cintltst”、“intltest”、“letest”三个工程由MT改为MD方式

debug配置 Multi-threaded Debug (/MTd) =》 Multi-threaded Debug DLL (/MDd)

多线程调试(/MTd)-->多线程调试DLL(/MDd)

release配置 Multi-threaded (/MT) =》 Multi-threaded DLL (/MD)

多线程(/MT)-->多线程DLL(/MD)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐