模板函数编译错误

Template function compilng error

本文关键字:错误 编译 函数      更新时间:2023-10-16

>我有.inl和.cpp文件,.inl文件包含模板函数,我已经声明了全局变量,如下所示,

int global_value =0;并在编译该程序后使用 extern 关键字链接到.cpp文件,我得到以下错误

多个声明错误首先定义此处错误

任何人都可以建议我为什么出现此错误吗?

简而言之 - 在 cpp 文件上,有:

int global_value = 0;

在 INL 文件中,具有:

extern int global_value;

全局变量应该在一个且只能一个翻译单元(cpp 文件)中声明。所有其他翻译单元都应该直接或通过某个头文件使用extern。在您的情况下,包含 .inl 文件的每个翻译都会有效地声明全局,从而导致错误。因此,在 cpp 中声明它,并将extern放在 inl 中(假设您将 inl 文件包含在其他 cpp 文件中)。