变量的多重定义

时间:2017-02-10 08:01:34

标签: c++

C ++初学者。

我正在写一个简单的程序,分为三个部分:

foo.h (#包括所有需要的库,所有程序变量和所有函数的声明)

foo.cpp (#include foo.h,包含foo.h函数的定义)

main.cpp (#include foo.h,当然包含主要功能)

我用命令编译: g ++ * cpp -o time

我得到的错误是:

/tmp/cc0sNZgq.o:(.bss + 0x0):为foo.h中声明的每个变量多次定义' variableName' 。其次是:

collect2:错误:ld返回1退出状态

注意:我已经在头文件foo.h

中添加了包含警戒

我试图找到一个包含所有变量和函数声明的标题,以便main.cpp保持尽可能简单和干净。

我已经在线查看,无法找到解决方案。

1 个答案:

答案 0 :(得分:3)

不要将变量放入头文件中。这意味着包含标题的每个.cpp文件都有自己的变量副本。

如果要跨多个.cpp共享全局变量,则应在一个.cpp中声明它们,并在头文件中使用 extern 。但我建议不要使用全局变量,除非绝对必要。