【发布时间】:2010-11-18 19:11:02
【问题描述】:
我正在查看一段创建全局类变量的代码。这些类的构造函数调用一个符号表单例并在其中添加 this 指针..
在关键字.cpp 文件中
class A : class KeyWord
{
A() { add(); }
} A def;
对于关键字 B、C 等类似
void KeyWord::add()
{
CSymbolCtrl& c = CSymbolCtrl::GetInstance();
c.addToTable(this);
}
这些翻译单元被编译成一个库。当我“转储”库时,我看到了 ADef、BDef 等的动态初始化程序。
在 exe 中没有,当我调用 CSymbolCtrl 实例时,我没有找到存储在其映射中的 ADef、BDef..。当我在 add() 中设置断点时,它没有被命中。有没有办法让链接器忽略 ADef、BDef,因为它们在任何地方都没有被引用?
}
【问题讨论】:
-
你能使用合理编译的示例代码吗?
标签: c++ global-variables