#c 17 #visual-studio-2019
#c 17 #visual-studio-2019
Вопрос:
Если я скомпилирую некоторый код со следующим:
#include <string_view>
std::string_view strv{ "Test 1" };
Я получаю эту ошибку:
Error C2065 'string_view': undeclared identifier...
Я попробовал какой-то другой код на c 17, но ни один из них не работает.
Я получаю те же ошибки, если для стандарта языка C установлено значение std: c 14
Свойства-> C / C -> Командная строка содержит /std:c 17, но в фактической командной строке компилятора, которая выполняется, этот параметр не установлен.
Это версия Visual Studio 2019 для сообщества, версия 16.7.1
Комментарии:
1.
Properties-->C/C -->Command line
Убедитесь, что вы смотрите на ту же конфигурацию, которую вы компилируете.2. Это хороший комментарий, но да, я проверил, что я компилировал с правильной конфигурацией. Я также только что скомпилировал файл c (не весь проект), свойства файла c -> C / C -> Командная строка имеет параметр /std: c 17.
3. Тогда это странно. Я могу только предложить вам увеличить детализацию сборки и попытаться следить за тем, что происходит в файлах журнала.
4. Спасибо, я сделаю еще несколько попыток. Тогда я просто переустановлю VS2019. Если это сработает, я сообщу об этом.
5. Было бы интересно, если бы вы могли опубликовать здесь весь
.vcxproj
файл или, по крайней мере,<ClCompile>
его разделы.
Ответ №1:
пользователь dxiv указал, что проблема заключается в раскрывающемся списке «Страницы свойств платформы», который должен быть установлен для ВСЕХ платформ (или установить C 17 индивидуально для платформ Win32 и x64).
Комментарии:
1. .vcxproj показывает только
<LanguageStandard>stdcpp17</LanguageStandard>
строку подx64
конфигурациями. Убедитесь, что для Platforms установлено значение All Platforms на странице свойств, где вы выбираете C 17.2. А также «Все конфигурации».