nodejs / community-committee

The Node.js Community Committee (aka CommComm)
MIT License
259 stars 70 forks source link

Error: Could not locate the bindings file. #668

Closed SPlatten closed 1 year ago

SPlatten commented 3 years ago

I'm working on developing an addon in C++. I'm using node version 15.11.0, my node_modules folder:

total 0
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 abbrev
drwxr-xr-x   9 sy  staff  288 11 Mar 13:12 ajv
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 ansi-regex
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 aproba
drwxr-xr-x  11 sy  staff  352 11 Mar 13:12 are-we-there-yet
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 asn1
drwxr-xr-x   7 sy  staff  224 11 Mar 13:12 assert-plus
drwxr-xr-x  12 sy  staff  384 11 Mar 13:12 asynckit
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 aws-sign2
drwxr-xr-x   9 sy  staff  288 11 Mar 13:12 aws4
drwxr-xr-x   7 sy  staff  224 11 Mar 13:12 balanced-match
drwxr-xr-x   7 sy  staff  224 11 Mar 13:12 bcrypt-pbkdf
drwxr-xr-x  12 sy  staff  384 12 Mar 09:21 binding
drwxr-xr-x   6 sy  staff  192 12 Mar 07:34 bindings
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 brace-expansion
drwxr-xr-x   7 sy  staff  224 11 Mar 13:12 caseless
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 chownr
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 code-point-at
drwxr-xr-x   7 sy  staff  224 11 Mar 13:12 combined-stream
drwxr-xr-x   9 sy  staff  288 11 Mar 13:12 concat-map
drwxr-xr-x   7 sy  staff  224 11 Mar 13:12 console-control-strings
drwxr-xr-x   8 sy  staff  256 11 Mar 13:12 core-util-is
drwxr-xr-x   8 sy  staff  256 11 Mar 13:12 dashdash
drwxr-xr-x   8 sy  staff  256 12 Mar 09:24 debug
drwxr-xr-x   8 sy  staff  256 12 Mar 09:24 deep-extend
drwxr-xr-x   8 sy  staff  256 11 Mar 13:12 delayed-stream
drwxr-xr-x  10 sy  staff  320 11 Mar 13:12 delegates
drwxr-xr-x   8 sy  staff  256 12 Mar 09:24 detect-libc
drwxr-xr-x   8 sy  staff  256 11 Mar 13:12 ecc-jsbn
drwxr-xr-x   7 sy  staff  224 11 Mar 13:12 env-paths
drwxr-xr-x  12 sy  staff  384 11 Mar 13:12 extend
drwxr-xr-x  11 sy  staff  352 11 Mar 13:12 extsprintf
drwxr-xr-x  10 sy  staff  320 11 Mar 13:12 fast-deep-equal
drwxr-xr-x  13 sy  staff  416 11 Mar 13:12 fast-json-stable-stringify
drwxr-xr-x  11 sy  staff  352 12 Mar 07:34 file-uri-to-path
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 forever-agent
drwxr-xr-x   8 sy  staff  256 11 Mar 13:12 form-data
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 fs-minipass
drwxr-xr-x   7 sy  staff  224 11 Mar 13:12 fs.realpath
drwxr-xr-x  21 sy  staff  672 11 Mar 13:12 gauge
drwxr-xr-x   8 sy  staff  256 11 Mar 13:12 getpass
drwxr-xr-x   9 sy  staff  288 11 Mar 13:12 glob
drwxr-xr-x   9 sy  staff  288 11 Mar 13:12 graceful-fs
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 har-schema
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 har-validator
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 has-unicode
drwxr-xr-x  10 sy  staff  320 11 Mar 13:12 http-signature
drwxr-xr-x   8 sy  staff  256 12 Mar 09:24 iconv-lite
drwxr-xr-x   6 sy  staff  192 12 Mar 09:24 ignore-walk
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 inflight
drwxr-xr-x   7 sy  staff  224 11 Mar 13:12 inherits
drwxr-xr-x   6 sy  staff  192 12 Mar 09:24 ini
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 is-fullwidth-code-point
drwxr-xr-x   7 sy  staff  224 11 Mar 13:12 is-typedarray
drwxr-xr-x  10 sy  staff  320 11 Mar 13:12 isarray
drwxr-xr-x  10 sy  staff  320 11 Mar 13:12 isexe
drwxr-xr-x  10 sy  staff  320 11 Mar 13:12 isstream
drwxr-xr-x   9 sy  staff  288 11 Mar 13:12 jsbn
drwxr-xr-x  13 sy  staff  416 11 Mar 13:12 json-schema
drwxr-xr-x   9 sy  staff  288 11 Mar 13:12 json-schema-traverse
drwxr-xr-x  10 sy  staff  320 11 Mar 13:12 json-stringify-safe
drwxr-xr-x   8 sy  staff  256 11 Mar 13:12 jsprim
drwxr-xr-x  17 sy  staff  544 12 Mar 09:24 libxmljs
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 lru-cache
drwxr-xr-x   8 sy  staff  256 11 Mar 13:12 mime-db
drwxr-xr-x   7 sy  staff  224 11 Mar 13:12 mime-types
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 minimatch
drwxr-xr-x   9 sy  staff  288 12 Mar 09:24 minimist
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 minipass
drwxr-xr-x   7 sy  staff  224 11 Mar 13:12 minizlib
drwxr-xr-x   9 sy  staff  288 11 Mar 13:12 mkdirp
drwxr-xr-x   6 sy  staff  192 12 Mar 09:24 ms
drwxr-xr-x  30 sy  staff  960 12 Mar 09:24 nan
drwxr-xr-x  10 sy  staff  320 12 Mar 09:24 needle
drwxr-xr-x  26 sy  staff  832 11 Mar 13:02 node-addon-api
drwxr-xr-x  17 sy  staff  544 11 Mar 13:12 node-gyp
drwxr-xr-x  11 sy  staff  352 12 Mar 09:24 node-pre-gyp
drwxr-xr-x   8 sy  staff  256 11 Mar 13:12 nopt
drwxr-xr-x   6 sy  staff  192 12 Mar 09:24 npm-bundled
drwxr-xr-x  10 sy  staff  320 12 Mar 09:24 npm-normalize-package-bin
drwxr-xr-x   6 sy  staff  192 12 Mar 09:24 npm-packlist
drwxr-xr-x   7 sy  staff  224 11 Mar 13:12 npmlog
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 number-is-nan
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 oauth-sign
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 object-assign
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 once
drwxr-xr-x   6 sy  staff  192 12 Mar 09:24 os-homedir
drwxr-xr-x   6 sy  staff  192 12 Mar 09:24 os-tmpdir
drwxr-xr-x   6 sy  staff  192 12 Mar 09:24 osenv
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 path-is-absolute
drwxr-xr-x  11 sy  staff  352 11 Mar 13:12 performance-now
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 process-nextick-args
drwxr-xr-x   9 sy  staff  288 11 Mar 13:12 psl
drwxr-xr-x   7 sy  staff  224 11 Mar 13:12 punycode
drwxr-xr-x  12 sy  staff  384 11 Mar 13:12 qs
drwxr-xr-x  12 sy  staff  384 12 Mar 09:24 rc
drwxr-xr-x  18 sy  staff  576 11 Mar 13:12 readable-stream
drwxr-xr-x   9 sy  staff  288 11 Mar 13:12 request
drwxr-xr-x   8 sy  staff  256 11 Mar 13:12 rimraf
drwxr-xr-x   7 sy  staff  224 11 Mar 13:12 safe-buffer
drwxr-xr-x   9 sy  staff  288 11 Mar 13:12 safer-buffer
drwxr-xr-x   6 sy  staff  192 12 Mar 09:24 sax
drwxr-xr-x  14 sy  staff  448 11 Mar 13:12 semver
drwxr-xr-x   7 sy  staff  224 11 Mar 13:12 set-blocking
drwxr-xr-x   8 sy  staff  256 11 Mar 13:12 signal-exit
drwxr-xr-x  10 sy  staff  320 11 Mar 13:12 sshpk
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 string-width
drwxr-xr-x   7 sy  staff  224 11 Mar 13:12 string_decoder
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 strip-ansi
drwxr-xr-x   6 sy  staff  192 12 Mar 09:24 strip-json-comments
drwxr-xr-x   8 sy  staff  256 11 Mar 13:12 tar
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 tough-cookie
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 tunnel-agent
drwxr-xr-x  14 sy  staff  448 11 Mar 13:12 tweetnacl
drwxr-xr-x   7 sy  staff  224 11 Mar 13:12 uri-js
drwxr-xr-x   8 sy  staff  256 11 Mar 13:12 util-deprecate
drwxr-xr-x  14 sy  staff  448 11 Mar 13:12 uuid
drwxr-xr-x   9 sy  staff  288 11 Mar 13:12 verror
drwxr-xr-x   8 sy  staff  256 11 Mar 13:12 which
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 wide-align
drwxr-xr-x   6 sy  staff  192 11 Mar 13:12 wrappy
drwxr-xr-x   7 sy  staff  224 11 Mar 13:12 yallist

I'm working on an iMAC:

macOS Big Sur
Version 11.2.3

When I launch node I get:

/Users/sy/dev/master/myaddon/node_modules/bindings/bindings.js:135
  throw err;
  ^

Error: Could not locate the bindings file. Tried:
 → /Users/sy/dev/master/myaddon/build/build/Release/myaddon.node
 → /Users/sy/dev/master/myaddon/build/Debug/build/Release/myaddon.node
 → /Users/sy/dev/master/myaddon/build/Release/build/Release/myaddon.node
 → /Users/sy/dev/master/myaddon/out/Debug/build/Release/myaddon.node
 → /Users/sy/dev/master/myaddon/Debug/build/Release/myaddon.node
 → /Users/sy/dev/master/myaddon/out/Release/build/Release/myaddon.node
 → /Users/sy/dev/master/myaddon/Release/build/Release/myaddon.node
 → /Users/sy/dev/master/myaddon/build/default/build/Release/myaddon.node
 → /Users/sy/dev/master/myaddon/compiled/15.11.0/darwin/x64/build/Release/myaddon.node
 → /Users/sy/dev/master/myaddon/addon-build/release/install-root/build/Release/myaddon.node
 → /Users/sy/dev/master/myaddon/addon-build/debug/install-root/build/Release/myaddon.node
 → /Users/sy/dev/master/myaddon/addon-build/default/install-root/build/Release/myaddon.node
 → /Users/sy/dev/master/myaddon/lib/binding/node-v88-darwin-x64/build/Release/myaddon.node
    at bindings (/Users/sy/dev/master/myaddon/node_modules/bindings/bindings.js:126:9)
    at Object.<anonymous> (/Users/sy/dev/master/myaddon/index.js:5:42)
    at Module._compile (node:internal/modules/cjs/loader:1092:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1121:10)
    at Module.load (node:internal/modules/cjs/loader:972:32)
    at Function.Module._load (node:internal/modules/cjs/loader:813:14)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:76:12)
    at node:internal/main/run_main_module:17:47 {
  tries: [
    '/Users/sy/dev/master/myaddon/build/build/Release/myaddon.node',
    '/Users/sy/dev/master/myaddon/build/Debug/build/Release/myaddon.node',
    '/Users/sy/dev/master/myaddon/build/Release/build/Release/myaddon.node',
    '/Users/sy/dev/master/myaddon/out/Debug/build/Release/myaddon.node',
    '/Users/sy/dev/master/myaddon/Debug/build/Release/myaddon.node',
    '/Users/sy/dev/master/myaddon/out/Release/build/Release/myaddon.node',
    '/Users/sy/dev/master/myaddon/Release/build/Release/myaddon.node',
    '/Users/sy/dev/master/myaddon/build/default/build/Release/myaddon.node',
    '/Users/sy/dev/master/myaddon/compiled/15.11.0/darwin/x64/build/Release/myaddon.node',
    '/Users/sy/dev/master/myaddon/addon-build/release/install-root/build/Release/myaddon.node',
    '/Users/sy/dev/master/myaddon/addon-build/debug/install-root/build/Release/myaddon.node',
    '/Users/sy/dev/master/myaddon/addon-build/default/install-root/build/Release/myaddon.node',
    '/Users/sy/dev/master/myaddon/lib/binding/node-v88-darwin-x64/build/Release/myaddon.node'
  ]
}

I have the bindings module installed and I've searched online for a solution, but cannot find anything. What could be the problem?

Here is index.js:

'use strict'

const { EventEmitter } = require("events")
const { Inherits } = require("util")
const { clsClass } = require("bindings")("build/Release/myclass")

Inherits(clsClass, EventEmitter)

const myclass = new clsClass(1);

myclass.on("data", (data, len) => {
    console.log("event data = ", data, "len = ", len);
});

let intLength = 8;
let intCount = 5;
myclass.init(intLength, intCount);
myclass.queue();

So I've tried the following to try and track down where the issue is, reduced index.js to just:

'use strict'

const { EventEmitter } = require("events")
const { Inherits } = require("util")
const clsClass  = require("./build/Release/myclass")

Now the reported output is:

node:internal/modules/cjs/loader:1151
  return process.dlopen(module, path.toNamespacedPath(filename));
                 ^

Error: dlopen(/Users/sy/dev/master/myaddon/build/Release/myaddon.node, 1): Symbol not found: __ZN6myaddon9clsmyaddon9clsWorker8mrefEmitE
  Referenced from: /Users/sy/dev/master/myaddon/build/Release/myaddon.node
  Expected in: flat namespace
 in /Users/sy/dev/master/myaddon/build/Release/myaddon.node
    at Object.Module._extensions..node (node:internal/modules/cjs/loader:1151:18)
    at Module.load (node:internal/modules/cjs/loader:972:32)
    at Function.Module._load (node:internal/modules/cjs/loader:813:14)
    at Module.require (node:internal/modules/cjs/loader:996:19)
    at require (node:internal/modules/cjs/helpers:92:18)
    at Object.<anonymous> (/Users/sy/dev/master/myaddon/index.js:5:41)
    at Module._compile (node:internal/modules/cjs/loader:1092:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1121:10)
    at Module.load (node:internal/modules/cjs/loader:972:32)
    at Function.Module._load (node:internal/modules/cjs/loader:813:14) {
  code: 'ERR_DLOPEN_FAILED'
}
Trott commented 1 year ago

I've unarchived this repo so I can close all PRs and issues before re-archiving.