c ++:错误:安装节点包时无法识别的命令行选项'-stdlib = libc ++'

seb*_*ano 10 g++ npm

为库运行npm install失败,并显示错误:

c ++:错误:无法识别的命令行选项'-stdlib = libc ++'

seb*_*ano 18

npm install使用环境变量运行CXX=clang++使其工作:

CXX=clang++ npm install ...
Run Code Online (Sandbox Code Playgroud)

  • 默认情况下 gyp 将使用 c++ 可执行文件。不幸的是,node-gyp 不会“自动配置”您的编译器设置。它将假设您正在使用 clang 并假设选项 --stdlib=libc++ 是一个有效选项。在某些情况下,例如当您将 g++ 设置为主编译器(c++ 指向 g++)时,情况并非如此。 (3认同)
  • 为什么 node-gyp 开发人员假设我们总是在 macOS 上使用 clang? (2认同)

Dai*_*ATO 5

对于那些仍然有这个问题的人,下面的命令在鱼壳和 macOS 上对我有用。

env CC=clang CXX=clang++ npm install XXX
Run Code Online (Sandbox Code Playgroud)