Невозможно устранить ошибку LNK2019: неразрешенный внешний символ
У меня есть решение в Visual Studio, у него есть 2 проекта, а именно 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:\Users\anubhav.a\Documents\Visual Studio 2008\Projects\PAL_TEST\Debug\Unit_Test.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://c:\Users\anubhav.a\Documents\Visual Studio 2008\Projects\PAL_TEST\Unit_Test\Debug\BuildLog.htm"
1>Unit_Test - 2 error(s), 0 warning(s)
Мне неясно, что означает сообщение и как устранить ошибку.
1 ответ
Вот обычный контрольный список, ваша проблема одна из них:
Вы не экспортируете класс с
declspec(dllexport)
ни импортируя их в вызывающий проект сdeclspec(dllimport)
,Убедитесь, что вы скомпилировали файл с реализациями.
Убедитесь, что проект, который использует ссылки класса против
.lib
генерируется первым проектом.