我正在尝试重新编译旧游戏的源代码,该游戏不是我编写的,我不知道使用哪个编译器来编译它。
我在文件中遇到未定义的标识符错误,但我无法弄清楚。错误是这样的 -
Error : Undefined identifier 'begin'
Error : Undefined identifier 'capacity'
Error : Undefined identifier 'size'
Error : Undefined identifier 'back'
Error : Undefined identifier 'pop_back'
我很确定我缺少一两个头文件。知道我缺少哪些标题吗?
PS:我正在使用 CodeWarrior IDE,如果有帮助的话。
编辑:-
这是出现错误的代码行 -
const OzU32 nCapacity = OzU32(capacity());
const OzU32 nAllocated = Capacity() - OzU32(size());
std::transform(
m_pPoolMemory,
m_pPoolMemory + nCapacity,
begin(),
std::ptr_fun(SetPointer<Type>));
您的编译器似乎缺少某些标准库,或者尚未正确安装/配置。
您可以:
修复编译器的配置(特别是检查包含路径)
切换到不同的编译器
安装缺少的库的第三方版本(查看stlport)
替换您正在处理的程序中使用缺少的库类的代码
实际上还有一些其他头文件,它们具有相同的方法名称,导致编译器混乱。所以我只是在方法名称前面添加了向量命名空间来解决这个问题。像这样 -
vector<Type>::begin()
是的,它是矢量。
你好,这非常简单,很可能你忘记在这些关键字之前放置 std:: 。或者您可以简单地将其写在代码顶部: using namespace std; 通过这样做,您不需要用 std:: 按下它们,但我不建议这样做,因为它可能会导致长代码出现问题