Qt, QtCreator 및 QMake에서 GCC 컴파일러 스위치 구성
최근 에 Windows 7 (64 비트)에서 Qt Creator 1.3.2, Qt 4.6.2 및 GCC 4.4.0 (32 비트 버전)을 사용하여 실험적인 C ++ 0x 확장을 사용하는 응용 프로그램을 컴파일하려고했습니다. 다음 (심각한) 오류가 발생했습니다.
이 파일에는 곧 출시 될 ISO C ++ 표준 인 C ++ 0x에 대한 컴파일러 및 라이브러리 지원이 필요합니다. 이 지원은 현재 실험적이며 -std = c ++ 0x 또는 -std = gnu ++ 0x 컴파일러 옵션을 사용하여 활성화해야합니다.
해결책을 찾을 때 qmake 및 컴파일러 플래그 스레드를 발견 했습니까? , .pro 파일에 다음을 추가했습니다.
CXXFLAGS += -std=c++0x
그러나 그것은 차이를 만드는 것 같지 않았습니다.
따라서 .pro (프로젝트) 파일에 추가해야하는 태그가있을 것으로 예상하지만 이전에 Qt, QMake 및 QtCreator에서 GCC 컴파일러 스위치를 엉망으로 만든 적이 없으며 적절한 호출 / 주문에 대해 확실하지 않습니다. . 제 질문은 QtCreator, QMake 및 Qt를 사용할 때 GCC 컴파일러 스위치를 어떻게 설정합니까?
그것은 매뉴얼 을 읽는 것으로 귀결됩니다 . CXXFLAGS
.pro 파일에서 사용하는 대신 다음과 QMAKE_CXXFLAGS
같이 사용해야 합니다.
main.cpp :
#include <cinttypes>
int main() { return 0; }
main.pro :
SOURCES += main.cpp
QMAKE_CXXFLAGS += -std=c++0x
당신은 사용해야합니다
CONFIG += c++11
C ++ 11 컴파일러 플래그를 자동으로 활성화합니다.
.prf
qt 설치에서 파일을 찾으십시오 . Windows에서 어디에 있는지 모르지만 Linux 설치에서는 /opt/Qt/5.4/gcc_64/mkspecs/features
.
이에 대한 qmake 문서 를 읽을 수 있습니다 .
qmake는 기능 (.prf) 파일에 지정된 추가 구성 기능으로 설정할 수 있습니다. 이러한 추가 기능은 종종 빌드 프로세스 중에 사용되는 사용자 지정 도구를 지원합니다. 빌드 프로세스에 기능을 추가하려면 CONFIG 변수에 기능 이름 (기능 파일 이름의 어간)을 추가하십시오.
자신 만의 기능을 추가 할 수 있습니다 .
내 시스템에서 찾은 내용은 다음과 같습니다. CONFIG + = name 은 기능을 활성화합니다.
./android/android_deployment_settings.prf
./android/android.prf
./build_pass.prf
./c++11.prf
./c++14.prf
./cmake_functions.prf
./configure.prf
./create_cmake.prf
./ctest_testcase_common.prf
./ctest_testcase_installed.prf
./ctest_testcase.prf
./dbusadaptors.prf
./dbusinterfaces.prf
./declarative_debug.prf
./default_post.prf
./default_pre.prf
./designer_defines.prf
./device_config.prf
./egl.prf
./exceptions_off.prf
./exceptions.prf
./exclusive_builds_post.prf
./exclusive_builds.prf
./gcov.prf
./include_source_dir.prf
./incredibuild_xge.prf
./java.prf
./lex.prf
./link_ltcg.prf
./link_pkgconfig.prf
./ltcg.prf
./mac/default_post.prf
./mac/default_pre.prf
./mac/objective_c.prf
./mac/rez.prf
./mac/sdk.prf
./moc.prf
./no_debug_info.prf
./precompile_header.prf
./qfeatures.prf
./qlalr.prf
./qml1_module.prf
./qml1_plugin.prf
./qml_debug.prf
./qml_module.prf
./qml_plugin.prf
./qmltestcase.prf
./qpa/basicunixfontdatabase.prf
./qpa/genericunixfontdatabase.prf
./qt_android_deps.prf
./qt_app.prf
./qt_build_config.prf
./qt_build_paths.prf
./qt_common.prf
./qt_config.prf
./qt_docs.prf
./qt_docs_targets.prf
./qt_example_installs.prf
./qt_functions.prf
./qt_headersclean.prf
./qt_helper_lib.prf
./qt_installs.prf
./qt_module_headers.prf
./qt_module.prf
./qt_module_pris.prf
./qt_parts.prf
./qt_plugin.prf
./qt.prf
./qt_targets.prf
./qt_tool.prf
./resolve_config.prf
./resolve_target.prf
./resources.prf
./silent.prf
./simd.prf
./spec_post.prf
./spec_pre.prf
./testcase.prf
./testcase_targets.prf
./testcocoon.prf
./testlib_defines.prf
./uic.prf
./unix/bsymbolic_functions.prf
./unix/dylib.prf
./unix/hide_symbols.prf
./unix/largefile.prf
./unix/opengl.prf
./unix/openvg.prf
./unix/separate_debug_info.prf
./unix/thread.prf
./unix/x11inc.prf
./unix/x11lib.prf
./unix/x11.prf
./unix/x11sm.prf
./use_c_linker.prf
./vxworks.prf
./warn_off.prf
./warn_on.prf
./wayland-scanner.prf
./win32/console.prf
./win32/default_pre.prf
./win32/dumpcpp.prf
./win32/idcidl.prf
./win32/msvc_mp.prf
./win32/opengl.prf
./win32/openvg.prf
./win32/qt_config.prf
./win32/qt_dll.prf
./win32/rtti_off.prf
./win32/rtti.prf
./win32/stl_off.prf
./win32/stl.prf
./win32/windeployqt.prf
./win32/windows.prf
./winrt/console.prf
./winrt/font_deployment.prf
./winrt/package_manifest.prf
./yacc.prf
정말 나를 위해 작동하는 유일한 방법은 것입니다 에 추가 QMAKE_CXXFLAGS
.
는 CONFIG += c++11
추가하지 않습니다 -std=c++11
컴파일 명령에.
'Program Tip' 카테고리의 다른 글
파이썬 예외 체이닝 (0) | 2020.10.24 |
---|---|
JPA 다중 임베디드 필드 (0) | 2020.10.24 |
Java 용 최고의 Redis 라이브러리 (0) | 2020.10.24 |
Return 문을 사용한 이상한 Try-Except-Else-Finally 동작 (0) | 2020.10.24 |
노드의 중괄호 (중괄호) require 문 (0) | 2020.10.24 |