我已经静态库用C++编写,我有一个结构描述数据格式,即
从C++静态库导出变量
struct Format{
long fmtId;
long dataChunkSize;
long headerSize;
Format(long, long, long);
bool operator==(Format const & other) const;
};
一些数据格式被广泛使用,像{fmtId=0, dataChunkSize=128, headerSize=0}
和{fmtId=0, dataChunkSize=256, headerSize=0}
一些数据结构类在构造函数中接收格式。我想为这些广泛使用的格式提供某种快捷方式,例如我可以通过引用传递的几个全球Format
成员gFmt128, gFmt256
。我实例他们在一个.cpp文件一样
Format gFmt128(0, 128, 0);
和.H有
extern Format gFmt128;
还,我宣告Format const & Format::Fmt128(){return gFmt128;}
,并尝试在主模块中使用它。
但是,如果我尝试做一个使用的lib在主模块中,链接器抱怨无法解析的外部gFmt128
。
我怎样才能让我的图书馆“出口”的全局变量,这样我就可以从其他模块使用它们?
这似乎是一个C++对象的正确方法。这里的静态使结构成员gFmt128成为一个类变量而不是具有内部连接的全局变量。 – workmad3 2008-09-18 10:32:42