c++ - 多次定义符号

标签 c++ visual-studio-2017

在以下情况下,我如何找出我哪里出错了?

在我的项目中,我有一个名为“appconstants.h”的头文件。 它包含一个全局变量:

#include <string>
using namespace std;
extern int                      g_iSpeakerLCID = 1031;

我在项目的一个 cpp 文件中使用了这个头文件。这很好用:

#include "appconstants.h"

现在,当我在同一项目的另一个 cpp 文件中声明相同的头文件时,出现编译错误

"int g_iSpeakerLCID (?g_iSpeakerLCID@@3HA) is already defined in compiler.obj.

这里发生了什么或者我应该检查什么?

最佳答案

不要在 extern 声明中初始化 - 只在定义点初始化。您的 extern 声明应该只是:

extern int g_iSpeakerLCID;

关于c++ - 多次定义符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49609066/

相关文章:

c++ - 使用 boost.python 将通用 C++ 库绑定(bind)到 python

c++ - 我正在努力理解着色器中的某些东西

git - 我应该忽略在 Git 中提交的 launchSettings.json 文件吗?

c++ - 防止调用模板化复制构造函数

c++ - 打印所有字符串,O(2^n) 算法

c++ - C++在后台Windows 10中运行程序

docker - .Net Core 不能使用支持 Docker 的 Add-migrations

c# - Visual Studio 在已保存的文件上提示 'Save as...' 对话框。

Azure WebJobs 和 Visual Studio 2017