声明非常量全局变量会导致链接错误C ++?

时间:2020-10-04 16:22:06

标签: c++ linker

一个非常奇怪的错误,我并不是要在全局范围内使用非常量变量。我刚刚在为项目做一些基本测试时注意到了这个问题。我有一个带有多个源和头的C ++项目,它们全部使用有效的头保护,并且当前没有错误。

但是我注意到一些奇怪的事情。

headers.h

#ifndef ANYONEOFTHEHEADERS_H
#define ANYONEOFTHEHEADERS_H


//normal C++ code


#endif

编译正常


#ifndef ANYONEOFTHEHEADERS_H
#define ANYONEOFTHEHEADERS_H


int randomvariable; 


//normal C++ code


#endif

ld返回1个退出状态


#ifndef ANYONEOFTHEHEADERS_H
#define ANYONEOFTHEHEADERS_H


int randomvariable{5};

//normal C++ code


#endif

ld返回1个退出状态


#ifndef ANYONEOFTHEHEADERS_H
#define ANYONEOFTHEHEADERS_H


constexpr int randomvariable{5}; 


//normal C++ code


#endif

编译正常。

有什么特殊原因吗?

在mingw编译器中使用代码块。

编辑:我已经阅读了所有三个重复的问题链接,但这些链接并没有回答我所问的问题,它们只是轻微相关

0 个答案:

没有答案
相关问题