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

g++ error regarding undefined reference to typedef

本文关键字:引用 c++ 错误 未定义 typedef      更新时间:2023-10-16

我正在尝试编译一个简单的测试程序,并且我包含的头文件之一具有以下类型定义

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 ?其实这没什么关系……