1

质疑重新配置 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] 并且相机视图不起作用(黑屏)。当我用谷歌搜索这个错误时,我看到很多线程建议安装一个库,然后重新配置 Qt,例如在这个错误报告中建议的那样。

我有两台不同的开发机器,一台安装了 Qt 和 Qt Creator 的二进制安装,另一台我从源代码构建 Qt。

4

2 回答 2

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 ..

gmake的-j参数值应设置为您机器上的逻辑 CPU 内核数。

于 2016-08-31T19:48:59.410 回答
1

听起来好像您需要一个用于网络摄像头和媒体播放器的 Qt 插件。Qt 应用程序找不到这些插件(注意,它们是专门为与 Qt 和特定版本的 Qt 一起使用而编译的)。

在 QT C++ 中,我会使用函数 QCoreApplication::addLibraryPath(const QString&),记录在这里: http ://doc.qt.io/qt-5/qcoreapplication.html#addLibraryPath

我不会将上述内容称为“答案”,但更像是这些线索可以帮助您搜索您需要找到的答案。

于 2016-08-31T18:56:08.580 回答