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

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

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

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



답변

이것은 반드시 유닉스 / 리눅스에만 국한되는 것은 아니므로 스택 오버플로에 대해 묻는 것이 좋습니다. 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에도 영향을 줄 수 있습니다.


답변

-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


답변

더 좋은 방법은 .

변경 사항을 영구적으로 유지하려면 /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

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


답변

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

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


답변

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

$ 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을 사용 하여 컴퓨터에 설치된 버전을 확인할 수 있습니다 .


답변

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 버전을 사용해야합니다.


답변

sudo apt-get install qt5-default

원하는 경우 다음 qt5qt4사용하십시오.

sudo apt-get install qt4-default