gyp - 无法让 node-gyp 使用/MD 创建 Windows 解决方案

标签 gyp node-gyp

我想用/MD 标志(多线程 DLL)编译一个 node.js 模块。
在 binding.gyp 的 cflags 选项中包含“/MD”不起作用。

最佳答案

在玩了 binding.gyp 之后 - 很多 - 似乎问题不是由于 node-gyp 而是与 gyp 本身以及它对特定设置所需的非常具体的嵌套顺序有关。也就是说,为了设置运行时库(在发行版中),运行时库选项必须嵌套在 gyp 文件中,如下所示:

configurations
  - Release
    - msvs_settings
      - VCCLCompilerTool
        - RuntimeLibrary

尝试在没有任何这些嵌套元素的情况下设置运行时库会阻止设置运行时库。 (令人讨厌的是,没有任何警告该选项被忽略。)

因此,要将模块的调试和发布版本设置为使用调试运行时 DLL(编译器选项/MDd)和发布运行时 DLL(编译器选项/MD),binding.gyp 将如下所示:
{
    'targets': [
    {
        # Usual target name/sources, etc.

        'configurations': {
            'Debug': {
                'msvs_settings': {
                            'VCCLCompilerTool': {
                                'RuntimeLibrary': '3' # /MDd
                    },
                },
            },
            'Release': {
                'msvs_settings': {
                            'VCCLCompilerTool': {
                                'RuntimeLibrary': '2' # /MD
                    },
                },
            },
        },
    },],
}

关于gyp - 无法让 node-gyp 使用/MD 创建 Windows 解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13469632/

相关文章:

visual-studio-2008 - GYP/V8 - 如何默认生成VS2008工程?

node.js - 安装pg Node 模块时出错

node.js - gyp - 如何指定链接库风格

node.js - 无法安装 better-sqlite3

Node.js 参数长度方法崩溃

node.js - 在 Visual Studio 2015 中构建 node-gyp 项目时出现 LNK1104 错误

node.js - 安装 npm 包时出现“node-gyp”错误

gyp - 我可以在 gyp 中使用环境变量吗

node.js - node-gyp 重建时出错