对象文件中的外部符号

时间:2010-09-01 08:40:29

标签: c++ c

我面临一个奇怪的问题,但无法以较小的比例模拟它。问题是我的符号表有一个我的外部符号的条目。这些是在头文件中声明的。在其他文件中定义 - header.c

标头文件

header.h

extern void rlog(int , char*, ...);
extern int SetGDebug(string);
extern int GDebug;

TEST.CPP C ++文件

#include <header.h>

nm -CA test.o | grep De

00000000 B GDebug
00000b70 t global constructors keyed to GDebug
00000070 T SetGDebug()

编译标志:-Wall -O2 -shared -fPIC -funroll-loops 编译器:g ++

正如预期的那样导致多次重新定义......

另一个快速问题......

extern-nd符号/函数是否使它成为目标文件的符号表?

1 个答案:

答案 0 :(得分:1)

您不需要声明函数extern,只需要声明变量。