无法解决错误LNK2019:未解析的外部符号

Unable to resolve error LNK2019: unresolved external symbol

本文关键字:外部 符号 解决 错误 LNK2019      更新时间:2023-10-16

我在Visual Studio中有一个解决方案,它有两个项目,即PAL_TEST和Unit_TEST
我在PAL_TEST,CPALResponse.h 上了一节课

#include "CFW_Stl.h"
class CPALResponse
{
  public:
    void SetCommandSucceeded(bool bCommandSucceeded = false);
    bool GetCommandSucceeded();
    void SetCommandType(int nCommandType);
    int GetCommandType();
  private:
    bool m_bCommadSucceeded;
    int m_nCommandType;
};

PAL_TEST CPALResponse.cpp 中的另一个文件

#include "stdafx.h"
#include "CFW_CPALResponse.h"
void CPALResponse::SetCommandSucceeded(bool bCommandSucceeded)
{
    m_bCommadSucceeded = bCommandSucceeded;
}
bool CPALResponse::GetCommandSucceeded()
{
    return m_bCommadSucceeded;
}
void CPALResponse::SetCommandType(int nCommandType)
{
    m_nCommandType = nCommandType;
}
int CPALResponse::GetCommandType()
{
    return m_nCommandType;
}

的Unit_Test中有一个文件Unit_Test.cpp

#include "stdafx.h"
#include "../PAL_TEST/CFW_CPALResponse.h"
int _tmain(int argc, _TCHAR* argv[])
{
    CPALResponse a;
    a.SetCommandSucceeded(true);
    return 0;
}

当我构建Unit_Test项目时,它会向我显示

1>------ Build started: Project: Unit_Test, Configuration: Debug Win32 ------
1>Linking...
1>Unit_Test.obj : error LNK2019: unresolved external symbol "public: void __thiscall CPALResponse::SetCommandSucceeded(bool)" (?SetCommandSucceeded@CPALResponse@@QAEX_N@Z) referenced in function _wmain
1>C:Usersanubhav.aDocumentsVisual Studio 2008ProjectsPAL_TESTDebugUnit_Test.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://c:Usersanubhav.aDocumentsVisual Studio 2008ProjectsPAL_TESTUnit_TestDebugBuildLog.htm"
1>Unit_Test - 2 error(s), 0 warning(s)

我不清楚该消息的含义以及如何解决错误

这是常见的检查表,您的问题是其中之一:

  • 您既没有导出具有declspec(dllexport)的类,也没有在具有declspec(dllimport)的调用项目中导入它们。

  • 确保使用实现编译文件。

  • 确保使用类的项目链接到第一个项目生成的.lib