Build pcre2(10.33) static library for multi-width application

174
01 июля 2021, 11:50

Столкнулся с проблемой сборки библиотеки pcre2, с параметром PCRE2_CODE_UNIT_WIDTH 0, для UTF-8, UTF-16, UTF-32, сборка проходит без проблем, однако при сборке для multi-width application, возникают ошибки:

[bcc32c Error] pcre2_auto_possess.c(273): unknown type name 'PCRE2_UCHAR'
[bcc32c Error] pcre2_auto_possess.c(274): unknown type name 'PCRE2_UCHAR'
[bcc32c Error] pcre2_auto_possess.c(306): unknown type name 'PCRE2_SPTR'
[bcc32c Error] pcre2_auto_possess.c(307): unknown type name 'PCRE2_SPTR'
[bcc32c Error] pcre2_auto_possess.c(310): use of undeclared identifier 'PCRE2_UCHAR'
[bcc32c Error] pcre2_auto_possess.c(311): use of undeclared identifier 'PCRE2_UCHAR'
[bcc32c Error] pcre2_auto_possess.c(312): use of undeclared identifier 'PCRE2_SPTR'

Очевидно тип не определён из-за директивы препроцессора, т.к. он использует для случаев UTF-8, UTF-16, UTF-32 следующее объявление:

#define PCRE2_JOIN(a,b) a ## b
#define PCRE2_GLUE(a,b) PCRE2_JOIN(a,b)
#define PCRE2_SUFFIX(a) PCRE2_GLUE(a,PCRE2_LOCAL_WIDTH)
#define PCRE2_UCHAR                 PCRE2_SUFFIX(PCRE2_UCHAR)
#define PCRE2_SPTR                  PCRE2_SUFFIX(PCRE2_SPTR)

А для сборки с параметром PCRE2_CODE_UNIT_WIDTH 0:

#elif PCRE2_CODE_UNIT_WIDTH == 0
#undef PCRE2_JOIN
#undef PCRE2_GLUE
#define PCRE2_SUFFIX(a) a

В pcre2.h определены следующие типы:

typedef uint8_t  PCRE2_UCHAR8;
typedef uint16_t PCRE2_UCHAR16;
typedef uint32_t PCRE2_UCHAR32;
typedef const PCRE2_UCHAR8  *PCRE2_SPTR8;
typedef const PCRE2_UCHAR16 *PCRE2_SPTR16;
typedef const PCRE2_UCHAR32 *PCRE2_SPTR32;

В связи с этим интересует вопрос, возможна ли сборка для "multi-width application". Если ответ да, то как?

READ ALSO
Как передать объекту ссылку

Как передать объекту ссылку

Возможно глупый вопрос, не судите строгоВ общем, у меня есть объект на него нужно передать ссылку этого-же типа

304
Контент сайта и его фон

Контент сайта и его фон

Я новичок в верстке,так что помидорами не кидайтесь) Как сделаны такие сайты, что слева и справа находится очень длинный фон, а по середине...

80
Некорректное добавление записей в БД

Некорректное добавление записей в БД

Хочу передать значение некоторых полей в таблицу своей БДПроблема в том, что добавляется только две записи и не более, даже если объектов...

106
Зачем докеризация asp.net core создаёт лишнюю директорию?

Зачем докеризация asp.net core создаёт лишнюю директорию?

Пробую упаковать приложение aspnet core в контейнер докер по статье, всё получается, но есть непонятный момент

212