2016-08-31 11 views
1

Вопрос Что именно означает Переконфигурировать Qt и как это сделать после установки библиотеки?Как перенастроить Qt для обнаружения недавно установленной библиотеки?

Контекст: Как я учусь разрабатывать приложения в Qt, я продолжать работать с аналогичной проблемой с несколькими различными библиотеками, поэтому я прошу более общий вопрос, потому что я думаю, что есть образец здесь я я не понимаю. Однако я приведу конкретный пример:

Я хочу использовать представление камеры USB в своем приложении. У меня есть import QtMultimedia 5.0 в моем qml-файле и создан виджет камеры, основанный на примере Qt-Creator. Когда я иду запускать приложение, я вижу следующую ошибку в выводе приложения:

[WARN | default] defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.camera" [:0] [WARN | default] defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer" [:0] И изображение камеры не работает (черный экран). Когда я google эту ошибку, я вижу много потоков, которые предлагают установить библиотеку, а затем реконфигурирование Qt, например, как было предложено в this bug report.

У меня есть две разные машины разработки: одна с бинарной установкой Qt и Qt Creator, а с другой - я построю Qt из исходного кода.

ответ

2

Чтобы перенастроить Qt, необходимо перестроить Qt, так как конфигурация является первым шагом в построении Qt.

Qt спроектирован так, что вы можете (и обычно будете!) Иметь несколько версий, установленных параллельно на одном компьютере, в разных установочных папках. Все они будут построены из одного источника. Например. (На Unix), после того, как вы предположительно установлены пакеты разработки для GStreamer, вы должны построить следующим образом:

cd ~ 
mkdir Qt 
wget https://download.qt.io/official_releases/qt/5.7/5.7.0/single/qt-everywhere-opensource-src-5.7.0.tar.xz 
tar -xf qt-everywhere-opensource-src-5.7.0.tar.xz 

Каждая конфигурация построена в своем собственном наборе сборки/установки папки:

mkdir 5.7.0-shared-build 
mkdir 5.7.0-shared 
cd 5.7.0-shared-build 
../qt-everywhere-opensource-src-5.7.0/configure -prefix ../5.7.0-shared \ 
    -opensource -confirm-license -debug-and-release -gstreamer 
gmake -j8 && gmake -j8 install && echo OK 
cd .. 

mkdir 5.7.0-static-build 
mkdir 5.7.0-static 
cd 5.7.0-static-build 
../qt-everywhere-opensource-src-5.7.0/configure -prefix ../5.7.0-static \ 
    -opensource -confirm-license -debug-and-release -static -gstreamer 
gmake -j8 && gmake -j8 install && echo OK 
cd .. 

Значение аргумента -j для gmake должно быть установлено на количество логических ядер процессора на вашем компьютере.

+0

Спасибо за ваш ответ, это делает его более понятным. Реконфигурирует qt при установке из двоичного средства, чтобы удалить и переустановить его? – Aras

+1

@Aras Нет необходимости удалять что-либо. Qt, установленный из двоичного файла, останется, вы просто не будете использовать его при создании своего проекта. И переустановка не имеет никакого смысла: вы должны ** построить ** это, а не просто установить двоичный файл во второй раз. Совершенно нормально, что в любой момент одновременно сосуществуют несколько наборов Qt. У меня иногда есть дюжина сборников. Я удаляю устаревшие, когда у меня заканчивается пространство, обычно :) –

+0

ok Я вижу. Я думаю, что в коде выше есть опечатка. Вы имели в виду 'qmake', а не' gmake'? – Aras

1

Звучит так, как будто вам нужен плагин Qt для веб-камеры и медиаплеера. Приложение Qt не может найти эти плагины (обратите внимание, что они специально скомпилированы для использования с Qt и с определенной версией Qt).

В QT C++, я хотел бы использовать функцию QCoreApplication :: addLibraryPath (Const QString &), документированных здесь: http://doc.qt.io/qt-5/qcoreapplication.html#addLibraryPath

Я бы не назвал выше "ответ", а скорее, как это подсказки, которые помогут вам найти ответ, который вам нужно найти.

 Смежные вопросы

  • Нет связанных вопросов^_^