C++ 经典错误:“*****.obj” 中的 already defined 解决方法
在使用 C++ 编程时,有时候会遇到一个常见的错误信息:“already defined in *****.obj”。这个错误通常出现在链接阶段,意味着代码中某个变量或函数已经在另一个目标文件中定义过了。下面我将解释这个错误的原因,并提供一种解决方法。
造成这个错误的原因是,在我们的程序中重复定义了同一个全局变量或函数。当链接器试图将所有目标文件组合在一起形成最终的可执行文件时,它会发现有多个相同名称的符号定义,于是就会报错。
解决这个问题的方法有很多种,以下我将介绍一种常见的做法。
首先,让我们来看一个具体的例子。假设我们有两个源文件:main.cpp 和 utils.cpp。在 main.cpp 文件中定义了一个全局变量 num,而在 utils.cpp 文件中也定义了同名的全局变量。这就会导致链接器出现重复定义的错误。
下面是 main.cpp 的代码:
#include <iostream><