내 시스템은 Ubuntu 16.04 LTS를 실행하고 있습니다.
Qt를 두 곳에 설치한 것 같습니다. /usr
4.8.7은 내 홈 디렉토리에 설치되었고 5.5.1은 당시 합리적으로 보였던 이유로 내 홈 디렉토리에 설치되었습니다.
$ /usr/bin/qmake -v
QMake version 2.01a
Using Qt version 4.8.7 in /usr/lib/x86_64-linux-gnu
$ ~/Qt/5.5/gcc_64/bin/qmake -v
QMake version 3.0
Using Qt version 5.5.1 in /home/jsd/Qt/5.5/gcc_64/lib
$ which qmake
/usr/bin/qmake
Qt Creator는 홈 디렉토리 버전을 보고 5.5.1을 실행하고 있다고 생각하지만 qmake
빌드 중에 실행되면 버전 4.8.7을 실행하고 약간의 문제가 발생합니다.
이걸 어떻게 청소하나요? 또한 내 홈 디렉토리에 Qt가 설치되는 것이 정상입니까?
편집하다:이 문제는 CONFIG += c++14
예를 들어 auto foo = [](const a, const b){return a<b;};
C++14를 지원해야 하는 Clang 3.7로 컴파일할 때 Qt Creator가 C++14 구문을 무시하고 허용하지 않기 때문에 발생합니다. qmake
5.4부터만 지원되기 CONFIG += c++14
때문에 이전 qmake
버전에 문제가 있는 것 같습니다.
답변1
Qt5는 루트나 관리자로 설치하지 않았기 때문에 로컬 디렉터리에 설치됩니다.
.bashrc, .cshrc, .zshrc, .profile 등 경로 설정 여부에 관계없이 시스템 파일이 파일보다 우선합니다.
시스템이 QT5의 로컬 사본을 먼저 찾을 수 있도록 PATH를 수정하십시오.
export PATH=$USER/Qt:${PATH}
답변2
해결책을 찾았습니다.
- 패키지 관리자를 통해 Qt4 제거
- 패키지 관리자를 통해 Qt5 설치
- 홈 폴더에서 Qt 제거
- Qt 크리에이터아직
CONFIG += C++14
Clang으로 컴파일할 때 (╯°□°)╯︵ ┻⁄┻ 무시 - Clang 3.2 이상에만 적용되는 가드를 편집
usr/lib/x64_84-linux-gnu/qt5/mkspecs/features/c++14.prf
하고 주석 처리했습니다 (Clang 3.7만 설치했음에도 불구하고 적용되는 것으로 보임).-std=c++1y
수정된 c++14.prf
파일:
intel_icc {
# ICC does not support C++14 yet
} else: clang {
# # Clang has supported -std=c++1y since version 3.2
# greaterThan(QT_CLANG_MAJOR_VERSION, 3)|greaterThan(QT_CLANG_MINOR_VERSION, 1): \
QMAKE_CXXFLAGS_CXX11 = -std=c++14
# # Unknown how long Apple Clang has supported -std=c++1y, but at least since XCode 5.0
# greaterThan(QT_APPLE_CLANG_MAJOR_VERSION, 4): \
# QMAKE_CXXFLAGS_CXX11 = -std=c++1y
} else: gcc {
# GCC has supported -std=c++1y since 4.8
greaterThan(QT_GCC_MAJOR_VERSION, 4)|greaterThan(QT_GCC_MINOR_VERSION, 7): \
QMAKE_CXXFLAGS_CXX11 = -std=c++1y
}
# Delegate to c++11.prf
include(c++11.prf)