Visual Studio 2013编译ICU4C 5.31

下载了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 静态库的编译》
http://blog.csdn.net/serverxp/article/details/5538878


二、静态编译


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)



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值