Как заставить проект 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 скрипт для его настройки.

Другие вопросы по тегам