关于未定义的typedef引用的g ++错误

时间:2011-12-22 15:50:22

标签: c++ linux compiler-construction g++ typedef

我正在尝试编译一个简单的测试程序,我所包含的其中一个头文件具有以下typedef

typedef const char* CharConst;
typedef unsigned int MyBool; 

稍后在头文件中,使用此typedef定义了一些函数。像这样的东西:

MyBool add_att(CharConst attr, const char*);

当我尝试调用此函数时出现错误,调用如下:

CharConst myconst = "some text";
const char* more_text = "more text";
add_att(myconst, more_text);

错误是:未定义引用`MyClass :: add_att(char const *,char const *)'

似乎编译器不喜欢第一个参数在头文件中已被typedef的事实。但它并不介意MyBool。编译器只会抱怨CharConst定义。

有没有简单的方法来解决这个问题?关于我能做什么的任何线索或暗示?我正在运行gcc版本4.6.2

1 个答案:

答案 0 :(得分:0)

从错误看起来,add_att是一个类的方法;我没有看到你的类的实例来调用该方法。考虑一下:MyClass * m = new MyClass();间 - > add_att(....)

或者,确保实际定义了函数,而不仅仅是原型。此外,这可能无关紧要,但在函数定义期间 - 您是否在函数参数中使用typedef?实际上这应该不重要......类型是一样的。