error LNK2005:已经在某一文件中定义/fatal error LNK1120: 无法解析的外部命令
这是一个常见的编译错误,它通常发生在我们使用多个源代码文件并链接它们时。具体而言,它表示同一个符号被多次定义,或者是由于缺少库文件而无法解析该符号导致的。
下面我们来演示一下这个错误出现的场景:
假设我们有两个源代码文件 a.cpp 和 b.cpp,它们都包含了一个名为 func 的函数。在我们的主函数 main.cpp 中我们调用了这个 func 函数。那么当我们尝试编译这个程序时,就会出现上面提到的编译错误。
让我们来看一下具体的代码:
a.cpp:
#include <iostream>
using namespace std;
void func() {
cout << "This is func in a.cpp" << endl;
}
b.cpp:
#include <iostream>
using namespace std;
void func() {
cout << "This is func in b.cpp" << endl;
}
main.cpp:
#include <iostream>
using namespace std;
void func();
in