sto cercando di costruire Facebook follia in Visual Studio 2015 RC liberamente seguendo le indicazioni fornite qui: https://github.com/jbandela/folly/tree/vc11di Visual Studio errori di compilazione nella libreria std
Sono fiducioso che con ampliato C++ 11 2015 supporto del I maggio avere un tempo più facile di quello che era possibile prima. Ho lavorato sui problemi con una clip decente, ma al momento sto ricevendo un insieme di errori di compilazione che non hanno senso per me. Ecco la parte superiore dell'output di compilazione con il primo errore:
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 '<'
Ecco la fonte che mi porta al per l'ubicazione di tale errore, ancora una volta in xstring nel namespace 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>
{
Un altro esempio di un errore sto ottenendo:
C2039 'exception': is not a member of 'std' folly c:\program files (x86)\microsoft visual studio 14.0\vc\include\stdexcept 27
La fonte:
class logic_error
: public _XSTD exception
{
Sono confuso da come questi e gli altri 219 errori possono sorgere riguardo alla libreria std stessa. Generalmente vengo da Linux/g ++, quindi non ho familiarità con l'ambiente di sviluppo di Visual Studio. Potrei fare qualcosa di semplice sbagliato. Quale può essere la causa di errori come questo?
Update 1
Aggiunta di ulteriori informazioni. L'ho riprodotto senza boost, quindi l'avviso "Versione del compilatore sconosciuto" scompare. Ho anche avuto più uscita dalla compilazione:
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
...
Update 2
Questi errori si verificano con e senza l'opzione di intestazione precompilata attivata.
Nell'output di build, ho notato il messaggio di errore "Versione del compilatore sconosciuto ...".Puoi controllare i tuoi file di intestazione quale condizione attiva questo messaggio? –
Grazie per il commento. Quel messaggio sulla versione del compilatore proveniva da boost. Ho letto online che questo è innocuo, ma ho rielaborato le cose nel progetto in modo che al momento non stia compilando una spinta per far uscire quel messaggio dall'immagine. Vedi il mio aggiornamento sotto la linea orizzontale. Ora quella nota scompare, ma sto ancora ricevendo l'errore. – firebush
Quale versione di Windows hai scelto come target? Puoi provare ad aggiungere "/ D WIN32_WINNT = 0x0601" alla tua riga di comando per scegliere come target Windows 7? Vedere [msdn] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa383745%28v=vs.85%29.aspx#setting_winver_or__win32_winnt) per i dettagli. –