首先确认产生这个问题因为lib跟现在编译生产环境不一致导致的
/MD:在dll中使用多线程,创建动态链接库的release版本,需要选择。
/MT: 在exe里使用多线程,创建exe的release版本,需要选择。
/MTd:同/MT一样,不过是在Debug版本中使用。
/MDL:同/MD一样,不过是在Debug版本中使用。
如果是Debug的“在静态库中使用MFC”,不要使用MDd,改用MTd,然后编译即可通过。
如果是Debug的“在共享DLL中使用MFC”,注意不要使用MTd,改用MDd;
如果是Release版本“在静态库中使用MFC”,不要使用MD,使用MT;
如果是Release版本的“在共享DLL中使用MFC”,不要使用MT,使用MD。
解决方法:(分三步)
首先配置MFC的使用为在静态库中使用MFC:
属性->常规->MFC的使用,选择“在静态库中使用 MFC”
然后,配置运行库:
属性->C/C++->代码生成->运行库,选择“多线程(/MT)”
最后,在附加依赖项中加入nafxcw.lib和libcmt.lib两个库文件:(注意:库nafxcw.lib必须先于库libcmt.lib,前者为mfc静态链接库,后者为c运行时库)
属性->链接器->输入->附加依赖项,添加nafxcw.lib和libcmt.lib
nafxcw.lib;libcmt.lib;
MSVCRT.lib;nafxcw.lib;libcmt.lib;
最后,在忽略特定默认库中 加入 MSVCRT.lib:
属性->链接器->输入->忽略特定默认库,添加 MSVCRT.lib
解决完上面可能出错
可能出现的报错:

解决:
方法一:
解决方法: xxxx函数前的__declspec(dllimport) 去掉。
出现原因: __declspec(dllimport) 必须用于从动态库对应的Lib中导入符号才会用到。
如果是静态库或者直接源码链接,则必须把__declspec(dllimport)去掉,否则警告。
方法二:
下载 libfaad_release.lib库源码,改为静态编译,输出静态库后,替换到源码目录中 重新编译
Github:https://github.com/veryitman/faacfaad2
faacfaad2\faad\faad\frontend 这个目录下会有一个vs工程,打开编译就行
解决libfaad_release静态编译出错问题,这个lib是静态编译的-C++文档类资源-CSDN下载
这是我已经编好的静态编译.lib
上面加完.lib可能还会出错


加个/FORCE:MULTIPLE 就可以了