VS常见问题原因与解决
问题1:error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“MT_StaticRelease”(lib_json.lib)
原因:
lib_json.lib库的编译选项为/MT , 而当前工程的编译选项为MDd,应保持一致。
解决:
VC项目属性->配置属性->C/C+±>代码生成->运行时库 设置为MT。
问题2:VS2015中Debug版本正常运行,Release版本闪退
*解决:*项目属性->常规->全程序优化,修改为无全程序优化即可。
无法将参数 1 从“void (__cdecl &)(std::promise &,int)”转换为“std::allocator_arg_t。
*原因:*在线程入口函数中使用了引用,但在创建thread的时候给参数少了std::ref()。
*解决:*std::bind不使用引用。可能确实有一些需求,使得C++11的设计者认为默认应该采用拷贝,如果使用者有需求,加上std::ref即可。