Как использовать / std: c ++ последний с Qt 5.12 - PullRequest
0 голосов
/ 07 мая 2019

До 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.

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

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

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

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

0 голосов
/ 07 мая 2019

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

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

...