qmake에 사용되는 Qt 버전을 어떻게 변경합니까?


31

나는 이것을하는 간단한 방법이 있어야한다고 생각하지만, googlefu는 실패하고 있기 때문에 qmake를 수행 할 때 사용되는 Qt 버전을 전환 (또는 영구적으로 변경)하는 방법에 대한 정보에 정말로 감사드립니다. 어떤 버전을 요청하면 다음과 같은 결과가 나타납니다.

~ $ qmake --version
QMake version 3.0
Using Qt version 5.0.1 in /usr/lib/x86_64-linux-gnu

QtCreator를 설치했지만 여기서 어디로 갈지 잘 모르겠습니다.

답변:


16

이것은 반드시 유닉스 / 리눅스에만 국한되는 것은 아니므로 스택 오버플로에 대해 묻는 것이 좋습니다. QtCreator는 대체 Qt 설치를 감지하는 데 능숙합니다. 새 프로젝트를 만들고 Projects왼쪽 의 탭을 살펴보십시오 . 다른 빌드 구성을 설정할 수 있습니다. 각 구성에 대해 설치된 여러 버전 중에서 선택할 수있는 드롭 다운 상자가 있어야합니다.

그렇지 않으면 QTDIR환경 변수가 Qt 버전을 설정하는 데 사용되는 것 같습니다 . 기본적으로 QtCreator는 이것을 /usr/share/qt4나를 위해 설정하므로 해당 경로 (예 : 구성 파일이있는 경로)로 설정하면 qmake가 다른 버전으로 빌드되어야합니다. 다음과 같이 테스트 할 수 있습니다.

QTDIR=/usr/share/qtX qmake --version

.pro파일 에서 이것을 설정하는 것이 가능할 수도 있지만, 문서화되지 않은 경우 (많은 qmake변수가 있는 것처럼) 문서화되지 않습니다.

또한 특정 메이저 버전으로 빌드하려는 경우 qmake일반적으로 기본 메이저 버전의 바이너리로 심볼릭 링크됩니다. 실제 바이너리는 다음 qmake-qt4과 같습니다 qmake-qt5. 또한 데비안 기반 시스템 man qtchooserqtX-default패키지 도 참조하십시오 .

최신 정보

qtchooserUbuntu 13.04 및 13.10에는 Qt 응용 프로그램이 다른 Qt 버전을 감지하는 방식에 영향을 미치는 버그가 있습니다 ( https://bugs.launchpad.net/ubuntu/+source/qt4-x11/+bug/1177823 참조) . 이것은 QtCreator에도 영향을 줄 수 있습니다.


감사! 대머리 qmake 대신 qmake-qt4를 사용해야했습니다. 너무 쉬웠지만 필요한 정보를 찾을 수 없었습니다. 감사!
Tamsyn Michael

@TamsynMichael-예, bin의 리눅스 쪽 qmake는 단지 심볼릭 링크입니다. 따라서 업데이트 대체와 같은 것을 사용하여 앞뒤로 전환하는 경우 이상적입니다. 업데이트 대안이 아니며 PyQt 빌드 스크립트와 같은 것들은 어쨌든 심볼 링크가 아닌 바이너리에 대한 직접적인 참조를 원합니다.
RobotHumans

13

-qt=qt5스위치 또는 QT_SELECT=qt5환경 변수 를 사용하는 데 도움이되었습니다 .

$ qmake --version
QMake version 2.01a
Using Qt version 4.8.7 in /usr/lib/x86_64-linux-gnu

$ qmake -qt=qt5 --version
QMake version 3.0
Using Qt version 5.5.1 in /usr/lib/x86_64-linux-gnu

$ QT_SELECT=qt5 qmake --version
QMake version 3.0
Using Qt version 5.5.1 in /usr/lib/x86_64-linux-gnu

마이너 및 패치 버전은 어떻습니까? 예를 들어 5.12에서 5.9.4 또는 5.11을 명시 적으로 어떻게 선택할 수 있습니까?
DavidJ

4

더 좋은 방법은 .

변경 사항을 영구적으로 유지하려면 /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf파일 을 수정해야합니다.이 파일은에 대한 심볼릭 링크 ../../../../share/qtchooser/qt4-x86_64-linux-gnu.conf입니다.

다음은 내 시스템의 예입니다 (Ubuntu 17.10 x64, Qt 5.10.1). 원본 symlink 파일과 대상을 그대로 유지하는 것이 좋습니다 (원래 구성을 복구하려는 경우). 또한 일관성을 위해 기본 위치에 새 파일을 작성하십시오. 단계는 다음과 같습니다.

심볼릭 링크 파일의 이름을 바꾸십시오 :

sudo mv /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf_orig

새 대상 구성 파일을 이름으로 작성하십시오.

gksudo gedit /usr/share/qtchooser/my_Qt_5.10.1_Desktop_gcc_x64.conf

이 파일에는 두 줄이 포함되어야합니다. 첫 번째 줄은 Qt 바이너리 (qmake 포함)의 경로이고 두 번째 줄은 Qt 라이브러리 (.so 파일 포함)의 경로입니다. 내 경우에는

<Qt_dir>/5.10.1/gcc_64/bin
<Qt_dir>/5.10.1/gcc_64/lib

저장하고 닫으십시오. default.conf새 구성 파일에 대한 심볼릭 링크 를 만듭니다 .

ln -s /usr/share/qtchooser/my_Qt_5.10.1_Destop_gcc_x64.conf /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf

Qt 버전을 확인하십시오.

qmake --version

이제 항상 지정된 버전을 사용해야합니다.


2

Debian Jessie Stable과 같은 배포판에서 다음을 수행 할 수 있습니다.

sudo apt-get install -y qt4-qmake qt4-dev-tools
sudo update-alternatives --install "/usr/bin/qmake" "qmake" "/usr/bin/qmake-qt4" 40
sudo update-alternatives --config qmake

다시 변경해야 할 경우 필요한 버전을 선택하기 만하면 세 번째 줄을 다시 실행하면됩니다.


2

위의 답변 중 많은 것이 효과가 있습니다. 그러나 나는 개인적으로 그들 중 어느 것도 영구적이지 않다는 것을 발견했다. 예를 들어 다음 명령을 실행할 수 있습니다.

$ QT_SELECT=qt5 qmake --version
QMake version 3.0
Using Qt version 5.2.1 in /usr/lib/x86_64-linux-gnu

그러나 새 터미널을 열고 Qt 버전을 확인하면 기본값으로 되돌아 가고 여러 버전의 Qt가 설치되어 있으면 기본값이 원하는 것이 아닐 수 있습니다. 이 명령을 실행하여 알 수 있습니다.

$ qtchooser -print-env
QT_SELECT="default"
QTTOOLDIR=...
QTLIBDIR=...

변경 사항을 고수하는 유일한 방법은 기본 버전을 변경하는 것입니다. 이렇게하려면 /usr/lib/x86_64-linux-gnu/qtchooser/default.conf이 줄을 편집 하고 변경하십시오.

/usr/lib/x86_64-linux-gnu/qt5/bin

qt5원하는 버전으로 변경할 수 있습니다 . 이 명령 qtchooser -list-versions을 사용 하여 컴퓨터에 설치된 버전을 확인할 수 있습니다 .


2

qmake( /usr/bin/qmake) 실제로 단지 심볼릭 링크입니다 qtchooser( /usr/bin/qtchooser).

인용은 다음과 같습니다 man qtchooser.

FILES
       /etc/xdg/qtchooser/default.conf
              System-wide  configuration  files. Each has two lines, the first
              is the path to the binaries and the second is the path to the Qt
              libraries.  If  a default.conf is provided, the settings from it
              will be automatically used in case nothing else is selected.

       $HOME/.config/qtchooser/*.conf
              User configuration files.

파일 /etc/xdg/qtchooser/default.conf보다 우선 순위가 높습니다 /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf. 다음은 qmake내 시스템의 예 에서 기본 Qt 버전을 선택하는 방법에 대한 단계입니다 (Ubuntu 17.10 x64, Qt 5.10.1).

/etc/xdg/qtchooser디렉토리를 작성하십시오 .

sudo mkdir /etc/xdg/qtchooser

구성 파일을 작성하고 편집하십시오.

gksudo gedit /etc/xdg/qtchooser/default.conf

위에서 말했듯이. 이 파일에는 두 줄이 포함되어야합니다. 첫 번째 줄은 Qt 바이너리 (qmake 포함)의 경로이고 두 번째 줄은 Qt 라이브러리 (.so 파일 포함)의 경로입니다. 내 경우에는 다음과 같습니다.

<Qt_dir>/5.10.1/gcc_64/bin
<Qt_dir>/5.10.1/gcc_64/lib

저장하고 닫으십시오. 이제 qmake지정된 Qt 버전을 사용해야합니다.


symlink도 작동합니다 : sudo mkdir -p / etc / xdg / qtchooser && sudo ln -s /usr/share/qtchooser/qt5-x86_64-linux-gnu.conf /etc/xdg/qtchooser/default.conf
maharvey67


0

Fedora 23의 (my) 기본 설정에서 환경 qt-3.3.8qt-4.8.5환경 이 모두 있는 경우 / 패키지가 올바른 버전을 찾을 수 있도록 /usr/libxx/qt4/bin/디렉토리를 임시로 추가 해야했습니다. 완성 된 QT4 앱을 실행할 때가 아니라 코드를 작성할 때 필요했습니다.PATHcmakeqmake

어떤 이유로 QT3 경로가 이미 시작될 때 영구적으로 불행히도 설치되어 PATHQT 버전 선택기가 제대로 작동하지 못했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.