未定义的标识符

时间:2013-06-19 07:05:37

标签: c++ undefined header-files codewarrior

我正在尝试重新编译一个旧游戏的源代码,这个代码没有被我编码,我也不知道使用了哪个编译器来编译它。
我在文件中收到未定义的标识符错误,这是我无法弄清楚的。错误就像这样 -

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>));

2 个答案:

答案 0 :(得分:1)

看起来您的编译器要么缺少某些标准库,要么没有正确安装/配置。

你可以:

  1. 修复编译器的配置(特别是检查包含路径)

  2. 切换到其他编译器

  3. 安装缺少的库的第三方版本(查看stlport

  4. 替换正在使用的程序中使用缺少的库类的代码

答案 1 :(得分:0)

实际上还有一些其他头文件,它们具有相同的方法名称,导致编译器混淆。所以我只是在方法名称前添加了vector命名空间来解决它。像这样 -

vector<Type>::begin()

是的,它是矢量。