关于对typedef的未定义引用的c++错误
g++ error regarding undefined reference to 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 ?其实这没什么关系……
相关文章:
- 将对象数组的引用传递给函数
- 什么时候在C++中返回常量引用是个好主意
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 何时在引用或唯一指针上使用移动语义
- 如何在c++中使用引用实现类似python的行为
- 编译C++时未定义的引用
- Ctypes wstring通过引用传递
- c++r值引用应用于函数指针
- 理解c++中的引用
- C++取消引用指针.为什么会发生变化
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- 强制转换为引用类型
- 引用一个已擦除类型(void*)的指针
- 向量元素的引用地址与它所指向的向量元素的地址不同.为什么
- 具有默认值的引用获取函数
- 如何使用基类指针引用派生类成员
- 使用取消引用的指针的多态性会产生意外的结果.为什么?
- 如何引用基类的派生类?