我在一个 linux 静态库项目中有 3 个文件,其中我有一个静态字段的链接问题,我想在两个类方法实现文件中使用该静态字段。我有class1.h、class1main.cpp 和class1utils.cpp。class1.h 定义了一个名为 class1 的类,其中包含所有静态方法和一个名为 pDb 的静态字段。.cpp 文件定义了分成两个文件的 class1 方法的实现。
在 class1.h 中,我声明了静态:
class class1 {
public:
static Database * pDb;
...
}
在 class1main.cpp 中,我在顶部定义了实际的静态:
Database * class1::pDb;
所以,我想我可以在 class1utils.cpp 中执行以下操作:
extern Database * class1::pDb;
但是当我制作项目并引入库时,pDb 在链接时被多次定义。有人可以告诉我如何在第二个源文件中引用静态,以便我可以使用它(它会链接)?
如果我将 class1utils.cpp 中的方法移回 class1main.cpp,并删除 class1utils.cpp,则链接有效。
感谢您的任何建议。科里。