y****e 发帖数: 23939 | 1 一个从MSVC port到GCC的project, 有一个GlobalDefinition.h在一个目录中,定义了
很多global的变量,现在编译的时候出现了很多"multiple definition of blah blah"
的错误在link stage。这个头文件已经有inclusion guard,怎么还会有这个问题呢?
网上查了一下,说这个inclusion guard只能protect a single translation unit。有
点迷惑,怎么解决这个问题呢?
Thx | t****t 发帖数: 6806 | 2 C language allows multiple declaration of a global variable.
C++ doesn't allow.
If you have to, try do this trick:
#ifdef GLOBAL
#define EXTERN
#else
#define EXTERN extern
#endif
EXTERN int your_variable;
then define GLOBAL in only one .c file.
blah"
【在 y****e 的大作中提到】 : 一个从MSVC port到GCC的project, 有一个GlobalDefinition.h在一个目录中,定义了 : 很多global的变量,现在编译的时候出现了很多"multiple definition of blah blah" : 的错误在link stage。这个头文件已经有inclusion guard,怎么还会有这个问题呢? : 网上查了一下,说这个inclusion guard只能protect a single translation unit。有 : 点迷惑,怎么解决这个问题呢? : Thx
|
|