在编译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
          },
        },
      },
    },
  },
}
最后修改:2024 年 03 月 23 日
如果觉得我的文章对你有用,请随意赞赏