模板函数编译错误
Template function compilng error
>我有.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 文件中)。
相关文章:
- 用MacOS Mojave编译C++:致命错误:mpi.h:没有这样的文件或目录
- std::is_base_of表示ctor编译错误
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- Qt5:使用QCommandLineParser类时出现奇怪的编译错误
- Qt Cmake 错误编译"GuiSupportQt not found"
- Opengl 精度转换错误编译错误 E0415
- 库将ARM架构错误编译为架构X64
- RT 音频 Mac 错误 g++ 编译错误
- 错误编译Boost.log
- 错误编译QT创建者 / QT窗口小部件示例
- 错误编译MIPS32
- Visual Studio 2013 中的错误(编译和运行代码)
- 链接错误编译qt项目在visual 2010
- 无法用模板错误编译nsgmls
- 奇怪的错误.编译失败
- 如果有人调用c++中的方法,则强制错误(编译时)
- 来自autoconf测试的错误编译命令
- 时间限制超出错误C++编译
- SFML 2.3 和 CodeBlocks 错误编译