error LNK2019: 无法解析的外部符号
在我的工程中包含了其他的工程的文件。格式如下:
#include "..\SpeechManager.h"
……
{
……
CSpeakItem* item = new CSpeakItem(mesHis);
CSpeechManager::AddEventSpeech(SPP_NORMAL, 0, item);
}
错误:
1>正在链接...
1> 正在创建库 ..\ssnmate\Debug\QQDLL.lib 和对象 ..\ssnmate\Debug\QQDLL.exp
1>QQDLL.obj : error LNK2019: 无法解析的外部符号 "public: static int __cdecl CSpeechManager::AddEventSpeech(enum SPEAK_PRIORITY,unsigned long,class CSpeakItem *,class CSpeakItem *,class CSpeakItem *)" (?AddEventSpeech@CSpeechManager@@SAHW4SPEAK_PRIORITY@@KPAVCSpeakItem@@11@Z),该符号在函数 "long __stdcall HookProc(int,unsigned int,long)" (?HookProc@@YGJHIJ@Z) 中被引用
1>QQDLL.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall CSpeakItem::CSpeakItem(char const *,int,struct TTS_PARAM *)" (??0CSpeakItem@@QAE@PBDHPAUTTS_PARAM@@@Z),该符号在函数 "long __stdcall HookProc(int,unsigned int,long)" (?HookProc@@YGJHIJ@Z) 中被引用
1>..\ssnmate\Debug\QQDLL.dll : fatal error LNK1120: 2 个无法解析的外部命令
如果头文件换成#include "..\SpeechManager.cpp"
错误如下:
1> 正在创建库 ..\ssnmate\Debug\QQDLL.lib 和对象 ..\ssnmate\Debug\QQDLL.exp
1>QQDLL.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall ISpeechLog::ISpeechLog(void)" (??0ISpeechLog@@QAE@XZ),该符号在函数 "public: class ISpeech * __thiscall CSpeechManager::GetDefaultSpeech(void)" (?GetDefaultSpeech@CSpeechManager@@QAEPAVISpeech@@XZ) 中被引用
1>QQDLL.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall ISpeechIntersound::ISpeechIntersound(void)" (??0ISpeechIntersound@@QAE@XZ),该符号在函数 "public: class ISpeech * __thiscall CSpeechManager::GetDefaultSpeech(void)" (?GetDefaultSpeech@CSpeechManager@@QAEPAVISpeech@@XZ) 中被引用
1>QQDLL.obj : error LNK2019: 无法解析的外部符号 "void __cdecl DebugMsg(char const *,...)" (?DebugMsg@@YAXPBDZZ),该符号在函数 "public: static unsigned long __stdcall CSpeechManager::ReadingLoopThread(void *)" (?ReadingLoopThread@CSpeechManager@@SGKPAX@Z) 中被引用
1>..\ssnmate\Debug\QQDLL.dll : fatal error LNK1120: 3 个无法解析的外部命令
这是怎么回事呀?怎么解决呀?