在Qt源码编译中添加ICU支持
2023年9月1日编译ICU
使用 MSYS2+MSVC 进行编译
从ICU的Github仓库下载Release源码
启用MSYS终端(需要Python3)
编译配置
runConfigureICU MSYS/MSVC --{enable|disable}-release --{enable|disable}-debug --prefix={PREFIX_DIR} --{enable|disable}-shared --{enable|disable}-static
可能需要构建一份release和一份debug视情况而定
如果构建static库,需要进行以下设置:
- 打开
runConfigureICU
并替换MD
为MT
- 修改 icu4c\source\extra\scrptrun\srtest.cpp,在代码上方添加
#define U_STATIC_IMPLEMENTATION 1
编译
运行make即可
make -j{CORES}
{make check}
make install
配置Qt
首先是基本的配置,请查看此文章
编译配置
设置环境变量(可能不需要):
set PATH=%PATH%;{ICU_BINARY_DIR}
set INCLUDE=%INCLUDE%;{ICU_INCLUDE_DIR}
set LIB=%LIB%;{ICU_LIB_DIR}
在原本的基础上,需要添加如下内容
-icu -I{ICU_INCLUDE_DIR} -L{ICU_LIB_DIR} ICU_LIBS="{-lsicudt -lsicuin -lsicuio -lsicutest -lsicutu -lsicuuc -lAdvapi32}"
如果icu为静态库,需要进行一些修改:
- 修改
qtbase\mkspecs\common\msvc-desktop.conf
内的MD
为MT
还有,如果选择-debug-and-release
,需要分别设置ICU_LIBS_DEBUG
和ICU_LIBS_RELEASE
,内容参考ICU_LIBS
,并且不需要设置LCU_LIBS
编译
使用任意工具
jom
jom install