Как заставить проект Qt QMake использовать стандарт C++98?
Я попробовал это в моем .pro
и это игнорируется:
TEMPLATE = app
CONFIG += console c++98
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += \
main.cpp
1 ответ
Самым простым решением было бы создать проект cmake. Тогда у вас будет:
# CMakeLists.txt
cmake_minimum_required(VERSION 3.1)
project(foo)
add_executable(${PROJECT_NAME} "main.cpp")
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 98)
Qt Creator поддерживает проекты cmake, поэтому использование qmake для таких проектов больше не дает никаких преимуществ. В конце концов, зависимость Qt является очевидной - это зависимость от qmake и ничего более, и qmake поставляется только в комплекте с модулем Qt Base.
Для qmake вы должны установить флаги компилятора напрямую:
!win32-msvc: QMAKE_CXXFLAGS += -std=c++98
Нет никакого способа установить его для MSVC, независимо от того, какой инструмент сборки вы используете: это ограничение самого компилятора. Единственный подход состоит в том, чтобы использовать достаточно старый набор инструментов и при необходимости переопределить QMAKE_CXX
с именем компилятора (не путь!). Компилятор должен быть в PATH
то есть вы должны использовать набор инструментов vsvars
скрипт для его настройки.