繁体   English   中英

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

[英]g++ error regarding undefined reference to 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 *)的引用”

似乎编译器不喜欢第一个参数已在头文件中进行类型定义的事实。 但它不介意MyBool。 编译器仅抱怨CharConst定义。

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

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

或者,确保实际定义函数,而不仅仅是原型。 另外,这可能并不重要,但是在函数定义期间-您是否在函数参数中使用typedef? 其实没关系...类型是相同的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM