在Qt源码编译中添加ICU支持

2023年9月1日 0 By Majjcom

参考文章:[1] [2]

编译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并替换MDMT
  • 修改 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内的MDMT

还有,如果选择-debug-and-release,需要分别设置ICU_LIBS_DEBUGICU_LIBS_RELEASE,内容参考ICU_LIBS,并且不需要设置LCU_LIBS

编译

使用任意工具

jom
jom install