Tag: c ++ 1z

将本地node.js扩展与支持libstd的c ++ 17链接起来

我试图在构build它之后在linux机器上使用我的本地node.js插件。 而且我收到以下错误: Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by /root/addon/node_modules/addon/build/Release/addonstrong text.node) 经过一番调查 – 我明白我需要链接编译的插件正确的libstdc ++库(似乎是libstdc ++。so.6)。 但使用的标志似乎没有什么好处 – 这是使用的binding.gyp的一部分: 'cflags!': [ '-fno-exceptions' ], 'cflags_cc!': [ '-fno-exceptions' ], 'conditions': [ ["OS=='linux'", { 'cflags_cc': [ '-lstdc++ -std=c++17' ], 'link_settings': { 'ldflags': [ '-R,<(module_root_dir)/lib/linux/libstdc++.so.6' ], 'libaries': ['<(module_root_dir)/lib/linux/libstdc++.so.6' ], } }] 这里有一个相关的问题 – 但是他们通过改变环境variables来解决这个问题,而不是在编译过程中连接它。

编译内置c ++ 17的本地节点插件在npm安装期间失败

我有使用c + + 17function,特别是“shared_mutex”nodejs的本机插件。 当我打电话给npm安装下载和编译插件时,我得到一个错误: Linux机器安装了GCC 6.0。 我的Binding.gyp使用以下configuration来捕获ostypes并相应地添加标志: 'conditions': [ ['OS=="linux"', { 'CXXFLAGS': [ '-std=c++1z' ]}], **我也试过'-std = c ++ 17','-std = c ++ 1z'。 我错过了什么? 更新:1.更新Ubuntu 16.04到GCC 16.04,并将其设置为默认值。 2.看来,当我尝试编译它manualy使用node-gyp重build“CXXFLAGS =' – std = c ++ 17'”它的工作原理和只带来一个错误:“shared_,utex命名空间std不会命名一个typesstd :: shared_mutex文件互斥“(最后一个错误)