Как использовать /std: C++ последний с Qt 5.12

До Qt 5.12 у нас было QMAKE_CXXFLAGS += /std:c++latest в нашем .pri файл, но после Qt 5.12 оба c++latest а также c++14 устанавливаются в качестве параметров командной строки Visual Studio в сгенерированном .vcxproj файл проекта.

Я могу добраться до C++17 через config += c++17, но тогда я получаю эту ошибку: Command line warning D9025: overriding '/std:c++latest' with '/std:c++17',

Как использовать последний стандарт C++ в Visual Studio 2019 при использовании файлов проектов, созданных qmake? Сказал иначе, как я могу не дать qmake автоматически вставлять свои собственные -std вариант?

Редактировать: я был неправ в отношении применения C++14 автоматически. Другой файл.pri установил его.

3 ответа

В Qt 5.13 вы можете обойти эту проблему, добавив

CONFIG += c++2a c++1z c++14

в ваш.pro файл. Значение C++2a отображается в /std: C++ последней.

Просто попробуйте это в своем файле .pro :

      CONFIG += c++latest

Использование CONFIG -= c++14 в файле.pri (.pro) в дополнение к QMAKE_CXXFLAGS += /std:c++latest чтобы qmake не вставлял свои собственные /std флаг компиляции.

Редактировать: это необходимо, только если ранее включенный.pri имеет CONFIG -= c++14 (и вы не можете удалить это из другого.pri)

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