我正在尝试编译一个简单的测试程序,我所包含的其中一个头文件具有以下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
答案 0 :(得分:0)
从错误看起来,add_att是一个类的方法;我没有看到你的类的实例来调用该方法。考虑一下:MyClass * m = new MyClass();间 - > add_att(....)
或者,确保实际定义了函数,而不仅仅是原型。此外,这可能无关紧要,但在函数定义期间 - 您是否在函数参数中使用typedef?实际上这应该不重要......类型是一样的。