程序经常会出现此类错误,最近也遇到过几次,总结起来主要都和lib文件有关系。
(1) 编译同事DLL文件的时候,由于同事的DLL头文件写法不正确,出现了此类错误,
如下宏定义,如果在其中一处少写了extern"C",会导致字符编码不同,最后在编译器找函数的时候,就会出现找不到对应的名字了
#ifdef ADLL_EXPORTS
#define ADLL_API extern"C"__declspec(dllexport)
#else
#define ADLL_API extern"C"__declspec(dllimport)
#endif
(2) 编译程序,用到函数库,却没有添加对应的依赖的lib文件,比如在win下编程,使用了Windows的系统函数,要添加Ws2_32.lib(有待确认,对windows函数不熟),比如opencv的要添加对应lib等等。