error LNK2005: 找到一个或多个多重定义的符号已经在xxxx.obj中定义的解决方法

error LNK2005: 找到一个或多个多重定义的符号已经在xxxx.obj中定义的解决方法

在进行C/C++编程时,我们有时会遇到error LNK2005错误,这个错误提示我们在链接阶段出现了一个或多个多重定义的符号。该错误通常表示在多个源文件中定义了相同的全局变量、函数或类等。本文将介绍如何解决这个问题,并提供一些示例代码来帮助理解。

首先,让我们看一下error LNK2005错误的常见原因之一:多个源文件都包含了相同的全局变量。例如,假设我们有两个源文件 main.cpp 和 utils.cpp,它们都包含了一个名为g_number的全局变量。编译器在链接时会发现这两个源文件都定义了相同名称的全局变量,从而导致了error LNK2005错误的发生。

为了解决这个问题,我们可以使用关键字extern来修饰全局变量的声明。在main.cpp中,我们只需要声明全局变量g_number而不要进行定义。具体的代码如下所示:

// main.cpp
extern int g_number;  // 声明全局变量

int main() {
   

你可能感兴趣的:(c++,算法,开发语言,C/C++)