#c #c 11 #visual-studio-2013
#c #c 11 #visual-studio-2013
Вопрос:
У меня есть этот небольшой CMakeLists.txt
cmake_minimum_required(VERSION 2.6)
project(project)
set(CMAKE_CXX_FLAGS "/Qstd=c 11")
add_executable(demo src/main.cpp)
Насколько я знаю, флаг /Qstd=c 11
должен включать поддержку C 11 при использовании msvc
, но это не так, даже не /Qstd=c 0x
работает.
Что я здесь делаю не так?
Комментарии:
1. Я полагаю, что эти флаги предназначены для компилятора Intel C .
2. @DrewDormann о, я вижу, мой плохой, и как это сделать с помощью msvc ?
3. Я не думаю, что у MSVC есть флаг, я думаю, что он всегда находится в режиме C 11, если вы не предоставите ему файл «.c». msdn.microsoft.com/en-us/library/fwkeyyhe.aspx
4. @user3784961 Добро пожаловать в MSVC 🙂
5. @user3784961: Нет, нет никаких предположений, кроме того, что я сказал. MSVC всегда будет использовать режим C 11, если не указан файл C, и в этом случае он всегда будет использовать режим C90.
Ответ №1:
VS2013 поддерживает c 11 без каких-либо дополнительных флагов. Вам не нужно делать ничего дополнительного (конечно, не забудьте использовать /EHsc для включения обработки исключений).
Ответ №2:
Поскольку я не могу комментировать, ближе всего вы сможете установить уровень, не соответствующий C 11, с помощью MSVC, установив для platform toolkit значение v100 (VS2010), поскольку это вернет его к версии, в которой C 11 не поддерживался (я вообще верю, но не совсем уверен) Но вам также понадобится установленный компилятор VS2010.
Комментарии:
1. какой флаг для этого?
2. Не флаг, он находится в разделе Конфигурация проекта> Общие> Набор инструментов платформы.
3. Кроме того, в VC10 (VS2010) были некоторые элементы C 11. Для C 03 вам нужен VC9 (VS2009).
4. @user3784961: По сути, это просто использование старой версии компилятора, выпущенной до анонса C 11. Это другой двоичный файл.