[求助]Cxx文件包含一个头文件, 编译没有问题, 链接的时候出现问题
在AdvDefinition.h里面定义如下结构
struct AdvDefinition
{
// Compile-time info
static const ClassType ClassId = 0x007d;
//--------------------------------------------------------------------------
// Attributes
struct Attributes
{
static const int Count = 247;
};
static const Attribute_Information_Type AttributeInformation[ Attributes::Count ];
};
在ReleasedInfo.cxx里面 include AdvDefinition.h
void ReleasedInfo::initialize()
{
//
ReleasedInfo[AdvDefinition::ClassId] =
AdvDefinition::AttributeInformation;
ReleasedInfoCount[AdvDefinition::ClassId] =
AdvDefinition::Attributes::Count;
}
编译没有问题,但是最后在build整个模块的时候提示
In function `ReleasedInfo::initialize()':
(.text+0x16a3532): undefined reference to `AdvDefinition::ClassId'
哪位大大知道是什么原因吗? 谢谢了
AdvDefinition::Attributes::Count确没有什么问题.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
![扫码二维码加入Web技术交流群](/public/img/jiaqun_03.jpg)
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你要在.cpp文件里面定义ClassId,就像定义全局变量那样
const ClassType AdvDefinition::ClassId = 0x007d;
否则编译器将找不到该静态成员的定义!
在哪个cpp里面?
AdvDefinition.cpp还是ReleasedInfo.cpp???