错误LNK2001:未解析的外部符号(C ++)


error LNK2001: unresolved external symbol (C++)

本问题已经有最佳答案,请猛点这里访问。

假设我在一个名为one.cpp的文件中有一个名为dothis(const char*abc)的函数。因此,当我试图从另一个函数中调用另一个源文件(2.CPP)时,我得到了错误:错误LNK2001:未解析的外部符号(C++),即使我使用了包含"一个h"的函数来修复这个问题。


这意味着程序中没有函数的定义。你忘了把那个one.cpp添加到你的程序中。

在这种情况下,"添加"的含义取决于您的构建环境及其术语。在MSVC中(因为您显然使用MSVC),您必须将one.cpp添加到项目中。

在更实际的术语中,适用于所有典型的构建方法,当您链接程序时,从one.cpp创建的对象文件丢失。


听起来你使用的是微软Visual C++。如果是这种情况,那么最有可能的情况是您没有用一个.cpp编译两个.cpp(一个.cpp是一个.h的实现)。

如果您来自命令行(cmd.exe),请先尝试以下操作:cl-o two.exe一.cpp二.cpp

如果您来自IDE,请右键单击解决方案资源管理器中的项目名称。然后选择添加,现有项目….在项目中添加一个.cpp。