C 链接出错的三个原因

大家应该经常碰到链接出错的问题,比如在vs.net2003中报错:

JMTAGIIDoc.obj : error LNK2019: 无法解析的外部符号 “public: virtual __thiscall CTagCompoundCommand::~CTagCompoundCommand(void)” (??1CTagCompoundCommand@@UAE@XZ) ,该符号在函数 “protected: void __thiscall CJMTAGIIDoc::OnTestDoc(void)” (?OnTestDoc@CJMTAGIIDoc@@IAEXXZ) 中被引用

1. 目标函数/类的定义文件(一般写在.cpp文件中)没有被加入到工程中:
   解决方案:在vs studio中,在解决方案资源视图下将定义文件添加到工程中;
2. 如果目标函数是虚基类的成员函数,而他却被声明成inline函数:
   解决方案:去掉这种函数的inline标志;
3. 如果目标函数/类是DLL中的函数/类,但却没有将其加入到导出表中:
   解决方案:比较多,关键词:”_declspec(dllexport)”、AFX_EXT_CLASS,大家baidu或者google一下就行了。

发表评论

您的电子邮箱地址不会被公开。