我有一个生成动态库的程序,生成的Lib和dll可以被测试程序引用。但是因为工作需要,需要将改程序改为生成一个静态库lib。我将程序中的
项目属性-》配置属性-》常规》配置类型改为静态库(.lib)
程序可以正确执行,并生成一个Lib文件。但是测试程序引用该Lib时,总是提示LINK错误。
mpcFaceEyeDetect是我的库函数。
后来发现是因为原来的代码是生成动态库,所以在.h中定义了
#ifdef MPC_BASE_EXPORT
#define MPC_API __declspec(dllexport)
#else
#define MPC_API __declspec(dllimport)
#endif
在输出的函数声明时都加了MPC_API,上述定义是为了在DLL文件中输出函数用的。但是改为静态库时就不需要了,将上述代码都屏蔽后程序可以正确编译了。