在编译Node Addons时,使用了外部的DLL,如果直接使用gyp的VC默认设置,调用某些方法会出错,主要是因为编译器无法确定堆分配的空间(会引起释放问题)。因此编译的程序需要和DLL的编译设置相同。
Update documentation for RuntimeLibrary
{
'target_defaults': {
'configurations': {
'Debug': {
'msvs_settings': {
'VCCLCompilerTool': {
# 0 - MultiThreaded (/MT)
# 1 - MultiThreadedDebug (/MTd)
# 2 - MultiThreadedDLL (/MD)
# 3 - MultiThreadedDebugDLL (/MDd)
'RuntimeLibrary': 1,
}
}
},
'Release': {
'msvs_settings': {
'VCCLCompilerTool': {
'RuntimeLibrary': 0, # shared release
},
},
},
},
},
}