Windows 下 VS2019 编译 icu 库
Posted ___stdcall
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows 下 VS2019 编译 icu 库相关的知识,希望对你有一定的参考价值。
1、需要用到的工具
1、Cygwin
2、Visual Studio 2019 (其他版本也可以)
3、icu 源码
2、配置Cygwin
* 1、从 https://cygwin.com 上下载 setup-x86.exe 或 setup-x86_64.exe。
选择Install from Internet
, 在”User URL”处输入以下地址:
https://mirrors.tuna.tsinghua.edu.cn/cygwin/
点击”Add”按钮, 然后选中”https://mirrors.tuna.tsinghua.edu.cn”, 点击”下一步”进行安装。
注意,该列表为可多选列表,注意把上面不需要的镜像点掉。
* 2、选择一些必要的组件,默认的那些 + make
* 3、把Cygwin bin 中的 Link.exe 重命名一下,避免与VS的冲突, 如图
3、编译
1、打开VS命令行,具体你要用哪个,自行选择对应的,他们的区别你可以百度下:
2、打开之后输入 (注意路径改成你的安装路径):
# 1、进入到 Cygwin,注意路径改成你自己的
cmd /c "C:/cygwin64/Cygwin.bat"
# 2、进入到 icu 目录, 路径改成你自己的
cd "F:\\open_sourcecode\\icu-main\\x32_static\\icu4c\\source"
# 3、配置
# debug dll 版本
bash runConfigureICU --enable-debug --disable-release Cygwin/MSVC -prefix="F:/open_sourcecode/icu-main/icu4c/source/dist" -enable-shared -disable-static
# release dll 版本
bash runConfigureICU --enable-release --disable-debug Cygwin/MSVC -prefix="F:/open_sourcecode/icu-main/icu4c/source/dist" -enable-shared -disable-static
静态版本:如果你想编译静态版本,我发现直接编译会有问题,需要改一些东西
1、打开 runConfigureICU,替换 :
debug 版本: /MDd, -MDd,/MD,-MD ----> /MTd
release 版本: /MDd, -MDd,/MD,-MD ----> /MT
我发现编译的时候,他 debug 版本用的还是 /MT,这个运行时库是不匹配的,
所 以全替换成一个就正常了。
2、修改 icu4c\\source\\extra\\scrptrun\\srtest.cpp
在顶上加入: #define U_STATIC_IMPLEMENTATION 1
如图
# debug 静态 lib 版本
bash runConfigureICU --enable-debug --disable-release Cygwin/MSVC -prefix="F:/open_sourcecode/icu-main/icu4c/source/dist" -enable-static -disable-shared
# release 静态 lib 版本
bash runConfigureICU --enable-release --disable-debug Cygwin/MSVC -prefix="F:/open_sourcecode/icu-main/icu4c/source/dist" -enable-static -disable-shared
3、make & make install 即可完成编译
以上是关于Windows 下 VS2019 编译 icu 库的主要内容,如果未能解决你的问题,请参考以下文章
Qt5.9.0正式版动态编译 (VS2017) 支持WebEngine ICU OpenSSL