Динамическая сборка ICU4С 69.1

Логическое дополнение этой статьи.

Нам понадобятся:

  1. MinGW
  2. MSYS2
  3. Python

Приступаем к сборке.

  1. Переходим по ссылке, выбираем нужную версию и скачиваем архив с исходным кодом (icu4c-69_1-src.zip)
  2. Распаковываем, например в корень T:\
  3. В icu\source\common\unicode\uconfig.h сразу после header guards добавляем строчку
    #define U_DISABLE_RENAMING 1
    чтобы получилось примерно так:
// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*  
**********************************************************************
*   Copyright (C) 2002-2016, International Business Machines
*   Corporation and others.  All Rights Reserved.
**********************************************************************
*   file name:  uconfig.h
*   encoding:   UTF-8
*   tab size:   8 (not used)
*   indentation:4
*
*   created on: 2002sep19
*   created by: Markus W. Scherer
*/

#ifndef __UCONFIG_H__
#define __UCONFIG_H__

#define U_DISABLE_RENAMING 1

<...>
  1. Запускаем MSYS2 и переходим в /t/icu/source
  2. Настраиваем окружение так, чтобы использовался наш MinGW и Python:
export PATH=/c/dev/8.1.0/x64/mingw/bin:/c/dev/tools/python39:$PATH
  1. Настраиваем флаги компилятора для правильной статической сборки:
export CFLAGS="-DU_DISABLE_RENAMING=1"
export CXXFLAGS="-std=c++11"
  1. Конфигурируем ICU:
 ./runConfigureICU MinGW prefix=/c/dev/8.1.0/x64/icu4c-69_1/shared -enable-shared -disable-static --disable-renaming --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --with-data-packaging=library
  1. Собираем:
mingw32-make

Сборка должна завершиться успешно.

  1. Устанавливаем библиотеку:
mingw32-make all install
  1. Копируем библиотеки в директорию lib:
cp /c/dev/8.1.0/x64/icu4c-69_1/shared/bin/*.dll /c/dev/8.1.0/x64/icu4c-69_1/shared/lib/

Всё.

Если используется система сборки qmake, в pro файле библиотека подключается так:

LIBS += -LC:/dev/8.1.0/x64/icu4c-69_1/shared/lib/
LIBS += -licuin
LIBS += -licutest
LIBS += -licutu
LIBS += -licuio
LIBS += -licuuc
LIBS += -licudt

INCLUDEPATH += C:/dev/8.1.0/x64/icu4c-69_1/shared/include
DEPENDPATH += C:/dev/8.1.0/x64/icu4c-69_1/shared/include

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *