Как установить две версии Qt и указать приложению, какую использовать?

#qt #d #versions

#qt #d #Версии

Вопрос:

Я разрабатываю приложение на Qt, но с использованием языка D (с привязкой QtD). Я заметил, что мое приложение вылетает с Qt 4.7.x, поэтому мне нужно использовать Qt 4.6.2 вместо этого. Однако в моей системе установлен Qt 4.7.2. К сожалению, я не заставляю QtD работать с последними версиями Qt и (боюсь) не рассчитываю на разработчиков QtD…

Единственное, что мне нужно, чтобы мое приложение установилось в системные библиотеки Qt 4.6.2 и использовало его, но пусть все остальные приложения по-прежнему используют Qt 4.7.2. Возможно ли это? Если да, то как это сделать тогда?

Комментарии:

1. Вы можете установить столько разных версий qt, сколько захотите, просто проверьте это github.com/g-konst/qt_installer

Ответ №1:

Ответ на ваш вопрос заключается в том, что версия Qt определяется qmake, который вы используете для создания вашего Makefile.

/opt/QtSDK/Qt-4.6.2/bin/qmake

/opt/QtSDK/Qt-4.7.3/bin/qmake

Каждая из них будет использовать библиотеку в каталоге.

Ответ №2:

В одну систему можно установить несколько версий библиотеки, и все менеджеры пакетов (rpm, deb) поддерживают это «из коробки».

Эти библиотеки будут просто называться по-разному. Например, если идентификатор выполняет

 ls /usr/lib/ | grep libcurl
  

в моей системе я получу:

 libcurl-gnutls.so.3
libcurl-gnutls.so.4
libcurl-gnutls.so.4.2.0
libcurl.so.3
libcurl.so.4
libcurl.so.4.2.0
  

итак, разные версии одной и той же библиотеки счастливо сосуществуют.

Все, что вам нужно сделать, это установить ссылку на желаемую версию библиотеки QT. Вам нужно указать это отдельно в параметрах компоновщика (не помню точную опцию).

Комментарии:

1. Я уже обнаружил еще несколько проблем, поэтому мне приходится завершить свой проект. В любом случае спасибо за вашу помощь…