Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Failed to install on Mac

未关闭
#48 4 条评论 19 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
25/100
Issue 类型
缺陷
描述清晰度
需要澄清
活跃度
停滞
技术栈
cpp, node.js

调研方向

该失败发生在 node-gyp 为 src/osx/DeviceINQ.mm 运行 configure build 时;首先重现 Mac 安装过程,并检查报告的 V8 和 NAN 兼容性错误。确定受支持的 Node.js 和 macOS 组合,然后验证安装是否能在受影响的设置上成功完成。

由索引模型根据 Issue 内容生成。

描述

Tried to downgrade nan as per #38 with no luck.

> [email protected] install /Users/extempl/Projects/escpos/node_modules/node-bluetooth
> node-gyp configure build

  CXX(target) Release/obj.target/BluetoothSerialPort/src/osx/DeviceINQ.o
../src/osx/DeviceINQ.mm:75:16: warning: 'Call' is deprecated [-Wdeprecated-declarations]
        found->Call(2, argv);
               ^
../../nan/nan.h:1739:3: note: 'Call' has been explicitly marked deprecated here
  NAN_DEPRECATED inline v8::Local<v8::Value>
  ^
../../nan/nan.h:104:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/osx/DeviceINQ.mm:78:15: warning: 'Call' is deprecated [-Wdeprecated-declarations]
    callback->Call(0, 0);
              ^
../../nan/nan.h:1739:3: note: 'Call' has been explicitly marked deprecated here
  NAN_DEPRECATED inline v8::Local<v8::Value>
  ^
../../nan/nan.h:104:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/osx/DeviceINQ.mm:109:16: warning: 'Call' is deprecated [-Wdeprecated-declarations]
    baton->cb->Call(1, argv);
               ^
../../nan/nan.h:1739:3: note: 'Call' has been explicitly marked deprecated here
  NAN_DEPRECATED inline v8::Local<v8::Value>
  ^
../../nan/nan.h:104:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/osx/DeviceINQ.mm:121:28: error: expected ')'
void DeviceINQ::Init(Handle<Object> target) {
                           ^
../src/osx/DeviceINQ.mm:121:21: note: to match this '('
void DeviceINQ::Init(Handle<Object> target) {
                    ^
../src/osx/DeviceINQ.mm:121:17: error: out-of-line definition of 'Init' does not match any declaration in 'DeviceINQ'
void DeviceINQ::Init(Handle<Object> target) {
                ^~~~
../src/osx/DeviceINQ.mm:133:5: error: use of undeclared identifier 'target'
    target->Set(Nan::New("DeviceINQ").ToLocalChecked(), t->GetFunction());
    ^
../src/osx/DeviceINQ.mm:133:72: error: too few arguments to function call, single argument 'context' was not specified
    target->Set(Nan::New("DeviceINQ").ToLocalChecked(), t->GetFunction());
                                                        ~~~~~~~~~~~~~~ ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:5955:3: note: 'GetFunction' declared here
  V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
  ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:351:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
../src/osx/DeviceINQ.mm:134:5: error: use of undeclared identifier 'target'
    target->Set(Nan::New("DeviceINQ").ToLocalChecked(), t->GetFunction());
    ^
../src/osx/DeviceINQ.mm:134:72: error: too few arguments to function call, single argument 'context' was not specified
    target->Set(Nan::New("DeviceINQ").ToLocalChecked(), t->GetFunction());
                                                        ~~~~~~~~~~~~~~ ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:5955:3: note: 'GetFunction' declared here
  V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
  ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:351:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
../src/osx/DeviceINQ.mm:135:5: error: use of undeclared identifier 'target'
    target->Set(Nan::New("DeviceINQ").ToLocalChecked(), t->GetFunction());
    ^
../src/osx/DeviceINQ.mm:135:72: error: too few arguments to function call, single argument 'context' was not specified
    target->Set(Nan::New("DeviceINQ").ToLocalChecked(), t->GetFunction());
                                                        ~~~~~~~~~~~~~~ ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:5955:3: note: 'GetFunction' declared here
  V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
  ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:351:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
../src/osx/DeviceINQ.mm:136:5: error: use of undeclared identifier 'target'
    target->Set(Nan::New("DeviceINQ").ToLocalChecked(), t->GetFunction());
    ^
../src/osx/DeviceINQ.mm:136:72: error: too few arguments to function call, single argument 'context' was not specified
    target->Set(Nan::New("DeviceINQ").ToLocalChecked(), t->GetFunction());
                                                        ~~~~~~~~~~~~~~ ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:5955:3: note: 'GetFunction' declared here
  V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
  ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:351:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
../src/osx/DeviceINQ.mm:228:16: warning: 'Call' is deprecated [-Wdeprecated-declarations]
        found->Call(2, argv);
               ^
../../nan/nan.h:1739:3: note: 'Call' has been explicitly marked deprecated here
  NAN_DEPRECATED inline v8::Local<v8::Value>
  ^
../../nan/nan.h:104:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/osx/DeviceINQ.mm:231:15: warning: 'Call' is deprecated [-Wdeprecated-declarations]
    callback->Call(0, 0);
              ^
../../nan/nan.h:1739:3: note: 'Call' has been explicitly marked deprecated here
  NAN_DEPRECATED inline v8::Local<v8::Value>
  ^
../../nan/nan.h:104:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/osx/DeviceINQ.mm:246:23: error: no matching constructor for initialization of 'String::Utf8Value'
    String::Utf8Value address(info[0]);
                      ^       ~~~~~~~
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3009:5: note: candidate constructor not viable: no known conversion from 'v8::Local<v8::Value>' to 'const v8::String::Utf8Value' for
      1st argument
    Utf8Value(const Utf8Value&) = delete;
    ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3002:5: note: candidate constructor not viable: requires 2 arguments, but 1 was provided
    Utf8Value(Isolate* isolate, Local<v8::Value> obj);
    ^
../src/osx/DeviceINQ.mm:297:20: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
        deviceObj->Set(Nan::New("name").ToLocalChecked(), Nan::New([device.nameOrAddress UTF8String]).ToLocalChecked());
                   ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3365:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATE_SOON("Use maybe version",
  ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:326:29: note: expanded from macro 'V8_DEPRECATE_SOON'
  declarator __attribute__((deprecated(message)))
                            ^
../src/osx/DeviceINQ.mm:298:20: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
        deviceObj->Set(Nan::New("address").ToLocalChecked(), Nan::New([device.addressString UTF8String]).ToLocalChecked());
                   ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3365:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATE_SOON("Use maybe version",
  ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:326:29: note: expanded from macro 'V8_DEPRECATE_SOON'
  declarator __attribute__((deprecated(message)))
                            ^
../src/osx/DeviceINQ.mm:308:25: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
            serviceObj->Set(Nan::New("channel").ToLocalChecked(), Nan::New((int)channelID));
                        ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3365:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATE_SOON("Use maybe version",
  ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:326:29: note: expanded from macro 'V8_DEPRECATE_SOON'
  declarator __attribute__((deprecated(message)))
                            ^
../src/osx/DeviceINQ.mm:311:29: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
                serviceObj->Set(Nan::New("name").ToLocalChecked(), Nan::New([[service getServiceName] UTF8String]).ToLocalChecked());
                            ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3365:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATE_SOON("Use maybe version",
  ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:326:29: note: expanded from macro 'V8_DEPRECATE_SOON'
  declarator __attribute__((deprecated(message)))
                            ^
../src/osx/DeviceINQ.mm:313:29: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
                serviceObj->Set(Nan::New("name").ToLocalChecked(), Nan::Undefined());
                            ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3365:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATE_SOON("Use maybe version",
  ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:326:29: note: expanded from macro 'V8_DEPRECATE_SOON'
  declarator __attribute__((deprecated(message)))
                            ^
../src/osx/DeviceINQ.mm:315:28: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
            servicesArray->Set(j, serviceObj);
                           ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3374:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATE_SOON("Use maybe version",
  ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:326:29: note: expanded from macro 'V8_DEPRECATE_SOON'
  declarator __attribute__((deprecated(message)))
                            ^
../src/osx/DeviceINQ.mm:317:20: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
        deviceObj->Set(Nan::New("services").ToLocalChecked(), servicesArray);
                   ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3365:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATE_SOON("Use maybe version",
  ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:326:29: note: expanded from macro 'V8_DEPRECATE_SOON'
  declarator __attribute__((deprecated(message)))
                            ^
../src/osx/DeviceINQ.mm:319:22: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
        resultArray->Set(i, deviceObj);
                     ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3374:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATE_SOON("Use maybe version",
  ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:326:29: note: expanded from macro 'V8_DEPRECATE_SOON'
  declarator __attribute__((deprecated(message)))
                            ^
../src/osx/DeviceINQ.mm:325:9: error: too few arguments to function call, expected 4, have 3; did you mean 'Nan::Call'?
    cb->Call(Nan::GetCurrentContext()->Global(), 1, argv);
        ^~~~
        Nan::Call
../../nan/nan_maybe_43_inl.h:345:30: note: 'Nan::Call' declared here
inline MaybeLocal<v8::Value> Call(
                             ^
13 warnings and 12 errors generated.
make: *** [Release/obj.target/BluetoothSerialPort/src/osx/DeviceINQ.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/Users/extempl/.nvm/versions/node/v12.7.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:203:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Darwin 18.7.0
gyp ERR! command "/Users/extempl/.nvm/versions/node/v12.7.0/bin/node" "/Users/extempl/.nvm/versions/node/v12.7.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "build"
gyp ERR! cwd /Users/extempl/Projects/escpos/node_modules/node-bluetooth
gyp ERR! node -v v12.7.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok 

主要语言
C++
星标
205
派生
56
PR 合并指标
30 天内没有已合并 PR

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

lsongdev/node-bluetooth 的其他 Issue

查看 lsongdev/node-bluetooth 的全部 Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。