MFC开发调用外部的库时有时候会出现".obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static void __cdecl xercesc_2_8::XMLPlatformUtils::Terminate(void)" (__imp_?Terminate@XMLPlatformUtils@xercesc_2_8@@SAXXZ),该符号在函数 __catch$?set@XercesParser@@QAE_NAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV23@1@Z$0 中被引用"的错误,这主要还是调用库出现了问题。那么该怎么解决呢?

工具/原料

  • 电脑
  • vs2010

方法/步骤

  1. 1

    编译dll工程时除了dll文件之外,还会生成一个lib文件,把它拷贝过来,加入到工程中。

  2. 2

    要在项目-属性-C/C++-附加包含目录中:填写附加头文件所在目录 ,分号间隔多项。

  3. 3

    还要在项目-属性-链接器-常规-附加库目录中填写附加依赖库所在目录,可以用 分号间隔多项。

  4. 4

    还要在项目-属性-链接器-输入-附加依赖项中填写附加依赖库的名字.lib ,使用空格或分号间隔多项。

  5. 5

    可能是添加的.lib库有问题,对于Debug模式下一定添加Debug的库,Release模式下一定要添加release模式下编译出的库,否则就会出现这种问题。

  6. 6

    要把dll放在debug或者release的目录下,编译时提示缺少哪个dll就将此dll放置在目录下。

  7. 7

    对于添加的库要在stdafx.h中声明,形式如下所示:

    #include "seglib.h"

    #pragma comment(lib,"seglib.lib")

    #pragma comment(lib,"opencv_core246.lib")

    END

注意事项

  • 出现这种问题时,一定要仔细检查,按照以上方法一般都可以解决的。
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。