Будет ли опция cl в make-файле Windows принимать флаг -std = c ++ 11? - PullRequest
0 голосов
/ 17 января 2019

Я написал пример Makefile в Windows, который использует опцию cl из Visual Studio 2017. Он вызывает следующие предупреждения cl: предупреждение командной строки D9002: игнорирование неизвестной опции '-std = c ++ 11'

Выполните следующие шаги, чтобы воспроизвести проблему.

  1. Открыть командную строку разработчика для VS2017
  2. Напишите любой простой код на C ++ и скомпилируйте с использованием, тогда мы увидим предупреждение
   cl <filename>.cpp /std=c++11 

Означает ли это, что по умолчанию VS2017 будет поддерживать c ++ 11, поэтому в параметре cl отсутствует флаг c ++ 11 (или), есть ли что-то еще для выдачи предупреждения cl.exe?

Может кто-нибудь уточнить по этому вопросу?

Спасибо

Hari

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Исследуя вывод cl.exe /? для MSVC 2017, я нашел:

/std:<c++14|c++17|c++latest> C++ standard version
    c++14 – ISO/IEC 14882:2014 (default)
    c++17 – ISO/IEC 14882:2017
    c++latest – latest draft standard (feature set subject to change)

Похоже, что:

  • Переключатель для строгой совместимости с C ++ 11 отсутствует.
  • Правильный синтаксис: /std:..., а не -std=...
0 голосов
/ 17 января 2019

См. здесь .cl принимает только параметры /std:c++14, /std:c++17 и /std:c++latest.

C ++ 11 уже включены по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...