Сборка Qt для Linux x86 с поддержкой fontconfig - PullRequest
0 голосов
/ 12 декабря 2018

Я портирую свое приложение Qt на Linux для архитектуры x86, и, поскольку последний официальный выпуск для этой платформы - 5.5, я пытаюсь сделать свою собственную сборку Qt 5.11.3.Я хочу использовать fontconfig, чтобы разрешить использование системных шрифтов.Моя сборочная платформа - Centos 7.5, и я использую набор инструментов GCC, который собирает двоичные файлы x86 с ключом -m32.Проблема в том, что я не могу увидеть библиотеку fontconfig.Я установил его с пакетом fontconfig-devel-2.13.0-4.3.el7.i686

При запуске configure с параметром -fontconfig я получаю следующее сообщение об ошибке:

ОШИБКА: функция 'fontconfig' была включена, но предварительное условие '! Config.win32 && features.system-freetype && libs.fontconfig' не удалось.

Насколько я понимаю, яЯ должен использовать -system-freetype и не могу использовать -qt-freetype, но когда я пытаюсь это сделать (также с -feature-freetype), я получаю это сообщение:

ОШИБКА: Feature 'system-freetype 'был включен, но предварительное условие' features.freetype && libs.freetype 'не выполнено.

Соответствующие сообщения в config.log:

looking for library freetype
Trying source 0 (type pkgConfig) of library freetype ...
pkg-config use disabled globally.
  => source produced no result.
Trying source 1 (type freetype) of library freetype ...
+ cd /home/myuser/qt-build/config.tests/freetype && /home/myuser/qt-build/qtbase/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" -early "CONFIG += cross_compile" 'LIBS += -lfreetype' /home/myuser/qt-build/config.tests/freetype
+ cd /home/myuser/qt-build/config.tests/freetype && MAKEFLAGS= /usr/bin/gmake
> g++ -c -m32 -pipe -O2 -std=gnu++11 -w -fPIC  -I. -I/home/myuser/qt-everywhere-src-5.11.3/qtbase/mkspecs/linux-g++-32 -o main.o main.cpp
> main.cpp:2:22: fatal error: ft2build.h: No such file or directory
>  #include <ft2build.h>
>                       ^
> compilation terminated.
> gmake: *** [main.o] Error 1
 => source failed verification.
test config.qtbase_gui.libraries.freetype FAILED

СейчасЯ также получаю это сообщение:

ПРЕДУПРЕЖДЕНИЕ: кросс-компиляция без sysroot.Отключение pkg-config

, которое, как я понимаю, является источником сбоя «source 0».Я, однако, попытался указать вручную настроить указатель на каталог включения freetype, передав FREETYPE_INCDIR = / usr / include / freetype2 для настройки;однако, как видно из файла журнала, это значение, по-видимому, не используется при обнаружении freetype.

Я упустил здесь трюк или скрипты конфигурирования не работают?И если это последнее, есть ли способ обойти это?

РЕДАКТИРОВАТЬ: Для полноты, среда для запуска configure:

CFLAGS=-m32
CXXFLAGS=-m32 --std=c++1x

Настроить флаги:

-opensource
-xplatform linux-g++-32
-nomake tests -nomake examples -nomake tools
-prefix /home/myuser/qt_install/
-qpa xcb
-no-use-gold-linker
-icu ICU_PREFIX=/home/myuser/icu_install ICU_LIBS="-licui18n -licuuc -licudata"
-no-opengl
-fontconfig -feature-freetype -system-freetype FREETYPE_INCDIR=/usr/include/freetype2

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Я обнаружил, что можно обойти это, установив CPATH (и LIBRARY_PATH, чтобы он указывал на конкретную сборку Freetype, которая, как оказалось, мне тоже нужна).Похоже, тот факт, что переменные FREETYPE_ * игнорируются при обнаружении присутствия Freetype, действительно является ошибкой в ​​скриптах конфигурации.

0 голосов
/ 13 декабря 2018

Попробуйте использовать библиотеку Freetype, которая включена в исходники Qt: при запуске configure используйте флаг " -qt-freetype "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...