[求助]Cxx文件包含一个头文件, 编译没有问题, 链接的时候出现问题

发布于 2022-10-15 07:49:03 字数 1378 浏览 19 评论 0

在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技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

日裸衫吸 2022-10-22 07:49:03

你要在.cpp文件里面定义ClassId,就像定义全局变量那样

const ClassType AdvDefinition::ClassId = 0x007d;

否则编译器将找不到该静态成员的定义!

避讳 2022-10-22 07:49:03

在哪个cpp里面?

AdvDefinition.cpp还是ReleasedInfo.cpp???

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文