Задать вопрос
@megomark

Как собрать Qt 4.8.5 из исходников для Linux?

Захотел старый проект собрать под qt 4.8.5 для linux. Но не получается это сделать(Далее объясню в чем проблема). Хотелось бы составить подробную инструкцию как это сделать - может не только мне пригодится.

Установленная система: Linux Mint 16 KDE x32.
Установлены пакеты: build-essential
Также установил SDK: Qt 5.2.1 for Linux 32bit

Итак скачал исходники qt 4.8.5 для линукс c сайта.
Распаковал их с помощью архиватора Ark.

Нашел описание как это сделать .
Там описываются 2 способа как это сделать:
1) установка в /usr
2) установка в /opt/qt-4.8.5
Мне больше подходит 2 способ чтобы на компьютере можно было устанавливать несколько разных версий qt.

Вначале установил нужные зависимости для сборки qt c помощью команды в терминале.
sudo apt-get install libfontconfig1-dev libfreetype6-dev libx11-dev libxcursor-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxrandr-dev libxrender-dev


Потом выполнил следующий код в терминале:
sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" \
     config.tests/unix/libmng/libmng.cpp &&
sed -i '/CONFIG -/ a\isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../..' \
     src/3rdparty/webkit/Source/WebKit2/DerivedSources.pro &&

export QTDIR=/opt/qt-4.8.5


После чего выполнил команду
./configure -prefix     $QTDIR               -sysconfdir /etc/xdg             -confirm-license                 -opensource                      -release                             -nomake demos                    -nomake examples    -no-webkit


make

sudo make install

В QtCreator-e в меню "Инструменты->Параметры->Сборка и запуск->Профили Qt " добавляю новый профиль. Для этого нахожу qmake в папке /opt/qt-4.8.5/bin и жму кнопку "Открыть". И даю название профилю "Qt 4.8.5".
После в меню "Инструменты->Параметры->Сборка и запуск->Комплекты" добавляю профиль "Qt.4.8.5".
Запускаю проект в QtCreatore 3.0.1. и настраиваю на сбоку на Qt 4.8.5.
Сборка проходит нормально но при запуске приложения выдается сообщение с ошибкой:
Cannot mix incompatible Qt library (version 0x40804) with this library (version 0x40805).

Понимаю что версии Qt разные - в системе используется Qt 4.08.04 а я программа скомпилирована под Qt 4.08.05. Но как разрешить эту проблему?
  • Вопрос задан
  • 9179 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
EXL
@EXL
Энтузиаст
Я сталкивался с такой же проблемой. Можете почитать статью по ссылке выше, там весьма подробная инструкция по сборке Qt 4.8.5
В вкратце, проблема в том, что в вашем окружении рабочего стола (KDE) используется Qt 4.8.4, и соответственно между библиотеками возникает конфликт. Решить его можно так:
1. Поставить пакет dbus-dev:
sudo apt-get install libdbus-1-dev
2. Сконфигурировать Qt приблизительно такой командой:
./configure -platform linux-g++ -opensource -confirm-license -xrender -fontconfig -opengl -dbus -prefix /opt/QtSDKs/Qt4.8.5-x86_64-all

3. Пересобрать.

Если вам необходима поддержка бэкенда для GStreamer'a (для работы с аудио/видео) - не забудьте указать при конфигурировании -glib -phonon -phonon-backend и доустановить необходимые хедеры.
Ответ написан
@megomark Автор вопроса
Спасибо! завтра на работе попробую - и поделюсь результатами. Сылочка тоже понравилась - много интересного можно узнать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы