Ошибки компиляции Visual Studio в библиотеке std

Я пытаюсь создать глупость Facebook в Visual Studio 2015 RC, следуя указаниям, приведенным здесь:
https://github.com/jbandela/folly/tree/vc11

Я надеюсь, что с расширенной поддержкой C ++ 11 в 2015 году мне будет легче, чем раньше. Я работал над проблемами приличного клипа, но в настоящее время получаю набор ошибок компиляции, которые не имеют смысла для меня. Вот вершина вывода компиляции с первой ошибкой:

2>------ Build started: Project: folly, Configuration: Debug Win32 ------
2>  pch.cpp
2>  Unknown compiler version - please run the configure tests and report the results
2>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstring(26): error C2143: syntax error: missing ',' before '<'
2>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstring(26): error C2143: syntax error: missing ',' before '<'

Вот источник, куда он меня приводит, для определения местоположения этой ошибки, опять же в xstring в пространстве имен std:

template<class _Mystr>
class _String_const_iterator
: public _Iterator012<random_access_iterator_tag, // <---- line 26
typename _Mystr::value_type,
typename _Mystr::difference_type,
typename _Mystr::const_pointer,
typename _Mystr::const_reference,
_Iterator_base>
{

Еще один пример ошибки, которую я получаю:

 C2039  'exception': is not a member of 'std'   folly   c:\program files (x86)\microsoft visual studio 14.0\vc\include\stdexcept    27

Источник:

class logic_error
: public _XSTD exception
{

Я смущен тем, как эти и другие 219 ошибки могут возникнуть относительно самой библиотеки std. Я обычно собираю из Linux / g ++, поэтому я не знаком со средой сборки Visual Studio. Я могу сделать что-то простое неправильно. Что может быть причиной таких ошибок?


Обновление 1

Добавляем больше информации. Я воспроизвел это без повышения, поэтому предупреждение «Неизвестная версия компилятора» исчезло. Я также получил больше информации из компиляции:

     Microsoft (R) C/C++ Optimizing Compiler Version 19.00.22816 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.

cl /c /I"C:\Users\myname\Documents\Visual Studio 2015\Projects\folly\folly\folly\folly" /I"C:\Users\myname\Documents\Visual Studio 2015\Projects\folly\folly\\" /I"Generated Files\\" /IDebug\ /ZI /ZW /ZW:nostdlib /W3 /WX- /sdl /MP /Od /Oy- /D _VARIADIC_MAX=10 /D FOLLY_NO_CONFIG /D _TIMESPEC_DEFINED /D FOLLY_HAVE_STD__IS_TRIVIALLY_COPYABLE /D _UNICODE /D UNICODE /D _DEBUG /D WINAPI_FAMILY=WINAPI_FAMILY_APP /D __WRL_NO_DEFAULT_LIB__ /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Yc"pch.h" /Fp"Debug\folly.pch" /Fo"Debug\\" /Fd"Debug\vc140.pdb" /Gd /TP /wd4453 /wd28204 /FU"C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs\14.0\References\CommonConfiguration\neutral\platform.winmd" /FU"C:\Program Files (x86)\Windows Kits\10\References\Windows.Foundation.FoundationContract\1.0.0.0\Windows.Foundation.FoundationContract.winmd" /FU"C:\Program Files (x86)\Windows Kits\10\References\Windows.Foundation.UniversalApiContract\1.0.0.0\Windows.Foundation.UniversalApiContract.winmd" /FU"C:\Program Files (x86)\Windows Kits\10\References\Windows.Networking.Connectivity.WwanContract\1.0.0.0\Windows.Networking.Connectivity.WwanContract.winmd" /analyze- /errorReport:prompt /bigobj pch.cpp

pch.cpp
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstring(26): error C2143: syntax error: missing ',' before '<'
c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstring(266): note: see reference to class template instantiation 'std::_String_const_iterator<_Mystr>' being compiled
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstring(27): error C2518: keyword 'typename' illegal in base class list; ignored
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstring(28): error C2518: keyword 'typename' illegal in base class list; ignored
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstring(29): error C2518: keyword 'typename' illegal in base class list; ignored
...

Обновление 2

Эти ошибки происходят с включенной опцией предварительно скомпилированного заголовка и без нее.

7

Решение

Это сообщение:

Неизвестная версия компилятора — пожалуйста, запустите тесты конфигурации и сообщите
результаты, достижения

испускается одним из файлов заголовка Для Boost требуется специальная версия VC ++, в данном случае это 11.0, которая соответствует VS 2012. Это, вероятно, причина, по которой вы получаете все эти ошибки. Вам необходимо скачать Visual Studio 2012, а затем следовать инструкциям по указанной вами ссылке.

1

Другие решения

Вы удостоверились, что заголовочные DLL являются самыми последними; они часто обновляются.
У меня есть опыт этого при работе на нескольких системах с одной сборкой.
Дополнительной проверкой будет добавление std :: в начале вашего вызова библиотеки, просто чтобы убедиться — таким образом, вы можете легко проверить, является ли это dll или вашим правописанием.

Также, пожалуйста, проверьте, получаете ли вы ошибку «v120» или «v140», это указывает на то, что вы неправильно используете версию VS.

Другой метод состоит в том, чтобы включить файлы VC lib в качестве локального «заголовка», обеспечивая по крайней мере соединение с компилятором.

Надеюсь, это поможет

0

По вопросам рекламы [email protected]