LINUX.ORG.RU

Qt5 некорректное отображение

 ,


0

2

Добрый день! Собрал Qt 5.7.0 под Linux Mint 17.3, XFCE. Проблема в том, что приложения некорректно отображаются: шрифт вообще не видно, меню смещено. Вот скриншот ассистанта: здесь

Пробовал устанавливать qt5ct: ссылка. Не помогло. В чем может быть дело?


В чем может быть дело?

в этом:

Собрал

anonymous ()
Ответ на: комментарий от RazrFalcon

Да, первый раз без fontconfig собрал. Сейчас пересобрал еще раз так:

../configure \
-prefix path/to/install \
-platform linux-g++ \
-device-option CROSS_COMPILE=x86_64-linux-gnu- \
-opensource \
-confirm-license \
-shared -release -c++std c++14 \
-qt-xcb -fontconfig \
-opengl desktop \
-skip webengine \
-skip websockets \
-skip webview \
-skip webchannel \
-nomake examples \
-nomake tests

make -j4
make install
make docs && make install_qch_docs

Но ничего не изменилось. И fontconfig не нашел. Где он должен лежать после установки?

silart ()
Ответ на: комментарий от silart

Я просил лог, а не последовательность команд. configure выдаёт простыню. В конце пишет что будет включено. Чтобы оно было включено - нужно удовлетворить зависимости. Это зависит от того какой у вас дистр. Жду.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от silart

-device-option CROSS_COMPILE=x86_64-linux-gnu-
-c++std c++14
desktop

Вы уверены, что там есть такие команды и они на что-либо влияют и они вам нужны?

-skip webengine

Если вам не нужен вебкит - скачайте сорцы qt-base, а не все.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от RazrFalcon

-device-option CROSS_COMPILE=x86_64-linux-gnu-
-c++std c++14
desktop

c++14 там есть. desktop тоже вроде был, кажется это связано с OpenGL. Во всяком случае под Windows я так собираю.

CROSS_COMPILE как выяснилось, если задать platform linux-g++ ни на что не влияет. Собирается все простым g++. По-видимому придется девайс делать, чтобы использовать кросс-сборку. А в win32-g++ этот параметр влияет. Странная непоследовательность. Хочется собрать кросс-тулчейном, хоть и под эту же платформу.

Если вам не нужен вебкит - скачайте сорцы qt-base, а не все.

Я обычно качаю архив целиком. А что qt-base поставляется отдельным архивом? Или придется из общего архива его выковыривать?

silart ()
Ответ на: комментарий от RazrFalcon

Я собираю из Linux Mint 17.3 для нее же самой. Я хочу собрать через кросс-тулчейн. То есть чтобы вызывался не g++, а TARGET-g++.

silart ()
Ответ на: комментарий от silart

Ну думаю стоит начать с установки зависимостей:

sudo apt-get install build-essential ^libxcb.* libx11-xcb-dev libglu1-mesa-dev libxrender-dev libfontconfig1-dev libgtk2.0-dev

Как собирать кросс-тулчейн не представляю. Никогда не сталкивался. Но явно не так как это делаете вы. Ибо вам для начала нужен mingw.

Ну и для сборки достаточно:

./configure -platform linux-g++ -opensource -confirm-license -nomake examples -nomake tests

Остальное по вкусу.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от RazrFalcon

Очевидно дело было в отсутствии libfontconfig1-dev libgtk2.0-dev. После установки запустил configure и FontConfig нашелся. Сейчас подождем когда соберется и посмотрим.

silart ()
Ответ на: комментарий от RazrFalcon

Как собирать кросс-тулчейн не представляю

Видно я плохо объяснил. Когда я собираю под Windows, использую тулчейн MinGW + MSYS2. В configure при этом указываю CROSS_COMPILE=i686-w64-mingw32- чтобы скрипт запускал вместо g++.exe i686-w64-mingw32-g++.exe. В настройках win32-g++ это предусмотрено.

Сейчас начал собирать Qt под Linux Mint и указал linux-g++. Заглянув в него можно увидеть, что везде просто вызывается g++ без учета CROSS_COMPILE. Под линуксом тулчейн уже установлен. Он не является кросс-тулчейном в строгом смысле потому что собирает под свою же платформу, однако его можно вызвать как-будто он кросс, то есть x86_64-linux-gnu-g++ вместо g++. Но скрипт сборки Qt, если указать linux-g++ это игнорирует, что показалось мне странным. Проблему можно решить создав устройство-десктоп по аналогии с linux-rasp-pi2-g++ и указав в configure параметр device.

silart ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.