编译目标文件时为什么const变量没有存储在符号表中?

时间:2014-06-05 12:18:44

标签: c++

c ++初学者在这里。我有一个程序,在许多.cpp源文件中共享了很多全局变量(我已经将它从一个巨大的文件中重构,并且需要快速完成,而不是使其成为最佳实践)。我的想法是编写一个头文件,使用extern声明所有这些全局变量,我将其包含在需要的地方,然后有一个.cpp文件,它们都被初始化。 e.g。

extern int a;
头文件中的

int a = 1;
<。>在.cpp文件中。

除了使用const的任何内容之外,这通常似乎有效。在这种情况下,.cpp中初始化的变量在编译时不会在符号表中结束(即,在.o文件中为它查找时无法找到变量),并且我得到一个链接错误,表示未定义的引用改变。为什么是这样?它是语言的东西,还是编译器的东西? (我得到了一个相当大的makefile,我很遗憾无法完全理解)

0 个答案:

没有答案