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)
一、动态库编译
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)
相关文章推荐
- PyQt5.5.1在Python3.5.1和Visual Studio 2013下的编译
- Visual Studio 2013 编译 boost-1_56_0_b1
- Visual Studio 2013 编译错误【error C4996: 'sprintf': This function or variable may be unsafe. 】的解决方案
- Visual Studio 2013 编译错误【error C4996: 'scanf': This function or variable may be unsafe. 】的解决方案
- Q: 用Visual Studio(2010, 2012, 2013, 2015)低版本打开高版本创建的工程时,编译运行工程出错
- 图文说明 Visual Studio 2013/2015 编译 libpqxx 步骤以及常见编译错误
- 关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法
- Visual Studio 2013编译ImageMagick
- 关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法
- Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法
- Visual Studio 2013编译log4cplus
- Visual Studio 2013编译OpenCV3.0+ITK-SNAP
- Visual Studio 2013 配置Boost库。 如何编译和选择,遇到无法打开文件“libboost_thread-vc120-mt-gd-1_58.lib的解决办法
- 关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法
- 关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法
- Visual Studio 2013编译libiconv-1.14
- 在visual studio 2013中编译Lua5.3.1
- OpenCV2.4.9 官方预编译版本+Visual Studio 2013+win8.1 x64 环境 配置记录
- Visual Studio 2013 编译CEF步骤
- Windows下Visual studio 2013 编译 Audacity