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++编程中遇到error LNK2005错误的原因及解决方法。错误通常是由于多个源文件定义了相同的全局变量、函数或类。解决方案是使用extern关键字在不同文件中声明和定义,确保每个符号只被定义一次,从而避免多重定义的问题。
订阅专栏 解锁全文
2396

被折叠的 条评论
为什么被折叠?



