2016-12-21 7 views
0

centos 6.7을 실행하는 워크 스테이션에서 Qt 5.6에서 Qt 5.7로 마이그레이션하고 싶습니다. Qt 5.6은 모두 정상이지만 Qt 5.7을 다운로드하고 설치 한 후에 다음 문제에 직면하고 있습니다.Qt 5.7.0과 gcc 4.4.7 on centos 6.7

내가 설치를 확인하기 위해 elasticnode의 예제를 실행하려고하지만 난 다음 빌드 오류가 있습니다

cc1plus: error: unrecognized command line option "-std=gnu++11"

이 오류는 4.4.7을하고하지 않는 GCC의 버전과 관련되어 이 옵션을 인식하십시오. Qt 5.7이 C++ 11 기능을 활성화하기 위해 사용하는 컴파일러 플래그는 -std=gnu++11이고 Qt 5.6은 -std=gnu++0x이었으며 마지막 플래그 만 gcc에서 인식합니다.

elasticnodes 예제의 .pro 파일에서 아무 것도 설정되지 않았으므로 문서 http://doc.qt.io/qt-5/qmake-variable-reference.html#config에 설명 된대로 기본적으로 c + 11이 비활성화되었다고 가정합니다. 그러나 이것은 마지막으로 생성 된 gcc 명령 줄과 일치하지 않습니다. qmake.

제 질문은 새 플래그를 제거하고 이전 플래그를 .pro 파일 (예 : -std=gnu++11 대신 -std=gnu++0x)로 다시 설정하는 방법입니까?

: - = C++ 11

QMAKE_CXXFLAGS + = -std = GNU + +0 난이 오류가

하지만

CONFIG :

나는 다음과 같은 줄을 추가하는 것을 시도했다

/opt/Qt5.7.0/5.7/gcc_64/include/QtCore/qbasicatomic.h:61: error: #error "Qt requires C++11 support"

이 플래그를 올바르게 설정하는 방법을 아는 사람이 있습니까?

+0

그런 오래된 컴파일러가 5.7에서도 지원됩니까? – dtech

+0

http://doc.qt.io/qt-5/supported-platforms.html에 따르면 gcc 4.9.1이 지원되지만 가능한 경우 컴파일러를 업그레이드하지 않는 것이 좋습니다 – Scab

+0

IIRC 최소 4.8.x가 필요합니다. 또는 그것과 같은 무엇인가 그리고 당신이 근원에서 그것을 지었던 지 그것은 that 's이다. prebuild 버전이 그러한 오래된 컴파일러와 함께 작동하는 것은 거의 없습니다. 오류가 말했듯이 - C++ 11 컴파일러가 필요합니다. – dtech

답변

1

Qt 5.7에는 C++ 11 컴파일러가 필요합니다. 따라서 지원되는 최소 GCC 버전은 GCC 4.6입니다 (그러나 상위 버전은 , 매우 권장). 더 나은 컴파일러를 얻으려면 devtoolset (예 : devtoolset-2, here 참조)을 설치할 수 있습니다.

+0

감사합니다. 실제로 centos 6.7에서 Qt 5.7을 GCC와 함께 사용할 다른 선택의 여지가 없습니다. – Scab