Следующая библиотека C++ была успешно скомпилирована в VS2008
http://sourceforge.net/projects/xmlrpcc4win/files/xmlrpcc4win/XmlRpcC4Win1.0.8.zip/download
Когда я открываю его в VS2010, это проходит процесс мастера преобразования без любых ошибок.
Теперь, когда я пытаюсь скомпилировать его в VS2010, я получаю некоторые странные ошибки STL как они:
1>TimXmlRpc.cpp(1018): error C2039: 'back_insert_iterator' : is not a member of 'std'
1>TimXmlRpc.cpp(1018): error C2065: 'back_insert_iterator' : undeclared identifier
1>TimXmlRpc.cpp(1018): error C2275: 'XmlRpcValue::BinaryData' : illegal use of this type as an expression
1>TimXmlRpc.cpp(1018): error C2065: 'ins' : undeclared identifier
1>TimXmlRpc.cpp(1018): error C2039: 'back_inserter' : is not a member of 'std'
1>TimXmlRpc.cpp(1018): error C3861: 'back_inserter': identifier not found
1>TimXmlRpc.cpp(1019): error C2065: 'ins' : undeclared identifier
1>TimXmlRpc.cpp(1031): error C2039: 'back_insert_iterator' : is not a member of 'std'
1>TimXmlRpc.cpp(1031): error C2065: 'back_insert_iterator' : undeclared identifier
1>TimXmlRpc.cpp(1031): error C2275: 'std::vector<_Ty>' : illegal use of this type as an expression
1> with
1> [
1> _Ty=char
1> ]
1>TimXmlRpc.cpp(1031): error C2065: 'ins' : undeclared identifier
1>TimXmlRpc.cpp(1031): error C2039: 'back_inserter' : is not a member of 'std'
1>TimXmlRpc.cpp(1031): error C3861: 'back_inserter': identifier not found
1>TimXmlRpc.cpp(1032): error C2065: 'ins' : undeclared identifier
Я не уверен, что сделать из некоторых из них. Например, back_insert_iterator
на самом деле член std
, но VS, кажется, не думает, что это.
Как я фиксирую ошибки как они? Они просто, кажется, не имеют много смысла, таким образом, я не уверен, где начать. Возможно, что-то в моих настройках проекта?
Например, вот строка 1018, который дает ошибку станд.:
std::back_insert_iterator ins = std::back_inserter(*(u.asBinary));
Если бы кто-либо мог бы дать мне некоторое направление, я ценил бы его. Я достаточно плохо знаком с C++, что мне нелегко выяснять этого.
Вы, вероятно, забыли #include
в некоторых своих файлах. Здесь объявляются такие вещи, как back_insert_iterator
.
Раньше вы могли забыть этот заголовочный файл, поскольку многие другие стандартные заголовки также включали его. VS2010 реорганизовал заголовки для своей реализации библиотеки, чтобы они соответствовали стандартам. В результате он гораздо менее прощает пропущенные заголовки, а
часто упускается из виду.