2016-08-31 5 views
1

질문 정확히 무엇을 의미합니까 Qt을 다시 구성하고 라이브러리를 설치 한 후에 어떻게해야합니까?Qt를 새로 설치하여 새로 설치된 라이브러리를 검색하려면 어떻게합니까?

상황 : 내가 Qt를에서 응용 프로그램을 개발하기 위해 배우고, 나는 몇 가지 다른 라이브러리와 비슷한 문제로 계속 실행, 그래서 내가 거기에 패턴이 여기에 있다고 생각하기 때문에 나는 더 일반적인 질문을하고 I 이해하지 못한다. 그러나 특정 예제를 제공합니다 :

내 응용 프로그램에서 USB 카메라보기를 사용하고 싶습니다. 내 qml 파일에 import QtMultimedia 5.0이 있고 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는 동일한 컴퓨터에 다른 설치 폴더에 여러 버전이 동시에 설치 될 수 있도록 설계되었습니다 (일반적으로!). 그들은 모두 같은 출처에서 지어 질 것입니다. 예 :

각 구성을 빌드 자체적으로 내장되어
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 .. 
을 당신은 아마도 gstreamer를위한 개발 패키지를 설치 한 후 다음과 같이 (유닉스), 당신은 구축해야 할 것이다

gmake에 대한 -j 인수의 값은 시스템의 논리적 CPU 코어 수로 설정해야합니다.

+0

답장을 보내 주셔서 감사합니다. Qt를 바이너리에서 설치 한 경우 다시 설치한다는 의미입니까? – Aras

+1

@Aras 아무 것도 제거 할 필요가 없습니다. 바이너리로 인스톨 된 Qt는 남아있을 것이므로, 특정 프로젝트를 빌드 할 때 사용하지 않을 것입니다. 다시 설치하는 것은 의미가 없습니다. ** 빌드해야합니다. ** 두 번째로 바이너리를 설치하는 것이 아닙니다. 언제나 여러 개의 Qt 설치가 공존하는 것이 정상입니다. 때로는 12 개의 빌드가 있습니다. 나는 공간이 부족할 때 쓸데없는 것들을 제거합니다. 보통 –

+0

괜찮습니다. 위의 코드에는 오타가 있다고 생각합니다. 당신은''제이크''가 아니라''제이크 '를 의미 했습니까? – Aras

1

마치 웹 카메라와 미디어 플레이어에 Qt 플러그인이 필요한 것처럼 들립니다. Qt 응용 프로그램은 해당 플러그인을 찾을 수 없습니다 (Qt 및 특정 Qt 버전과 함께 사용하기 위해 특별히 컴파일 됨). "대답" http://doc.qt.io/qt-5/qcoreapplication.html#addLibraryPath

내가 위를 호출하지 것보다는 더 이런은 다음과 같습니다

QT C++에서

, 나는 함수 QCoreApplication :: addLibraryPath (const를 QString &), 여기 문서화를 사용합니다 찾을 필요가있는 대답을 찾는 데 도움이 될 수있는 단서.

관련 문제