Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

webpack and nodegui >= 0.45.0 fails to find qt for linux and mac #939

Open
zecktos opened this issue May 5, 2022 · 16 comments
Open

webpack and nodegui >= 0.45.0 fails to find qt for linux and mac #939

zecktos opened this issue May 5, 2022 · 16 comments

Comments

@zecktos
Copy link
Contributor

zecktos commented May 5, 2022

Describe the bug
using the nodegui-starter repo and upgrading the nodegui version to anything greater than version 0.45.0 runs npm install without error but fails at npm start with the following error:
macos:

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

Error: dlopen(/Users/user/nodegui-starter/dist/nodegui_core-b4830b7771312645d920eca30febd09e.node, 1): Library not loaded: @rpath/QtSvg.framework/Versions/5/QtSvg
  Referenced from: /Users/user/nodegui-starter/dist/nodegui_core-b4830b7771312645d920eca30febd09e.node
  Reason: image not found
    at Object.Module._extensions..node (node:internal/modules/cjs/loader:1154:18)
    at Module.load (node:internal/modules/cjs/loader:975:32)
    at Function.Module._load (node:internal/modules/cjs/loader:816:12)
    at Module.require (node:internal/modules/cjs/loader:999:19)
    at require (node:internal/modules/cjs/helpers:93:18)
    at eval (webpack://nodegui-starter/./node_modules/@nodegui/nodegui/build/Release/nodegui_core.node?:1:18)
    at Object../node_modules/@nodegui/nodegui/build/Release/nodegui_core.node (/Users/user/nodegui-starter/dist/index.js:2728:1)
    at __webpack_require__ (/Users/user/nodegui-starter/dist/index.js:3225:42)
    at eval (webpack://nodegui-starter/./node_modules/@nodegui/nodegui/dist/lib/utils/addon.js?:3:15)
    at Object../node_modules/@nodegui/nodegui/dist/lib/utils/addon.js (/Users/user/nodegui-starter/dist/index.js:2538:1) {
  code: 'ERR_DLOPEN_FAILED'
}

same for ubuntu:

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

Error: libQt5Svg.so.5: cannot open shared object file: No such file or directory
    at Object.Module._extensions..node (node:internal/modules/cjs/loader:1154:18)
    at Module.load (node:internal/modules/cjs/loader:975:32)
    at Function.Module._load (node:internal/modules/cjs/loader:816:12)
    at Module.require (node:internal/modules/cjs/loader:999:19)
    at require (node:internal/modules/cjs/helpers:93:18)
    at eval (webpack://nodegui-starter/./node_modules/@nodegui/nodegui/build/Release/nodegui_core.node?:1:18)
    at Object../node_modules/@nodegui/nodegui/build/Release/nodegui_core.node (/home/user/nodegui-starter/dist/index.js:2643:1)
    at __webpack_require__ (/home/user/nodegui-starter/dist/index.js:3225:42)
    at eval (webpack://nodegui-starter/./node_modules/@nodegui/nodegui/dist/lib/utils/addon.js?:3:15)
    at Object../node_modules/@nodegui/nodegui/dist/lib/utils/addon.js (/home/user/nodegui-starter/dist/index.js:2538:1) {
  code: 'ERR_DLOPEN_FAILED'
}

my main Debian installation is giving this error:

 /home/user/nodegui-starter/node_modules/@nodegui/qode/binaries/qode: symbol lookup error: /home/user/nodegui-starter/dist/nodegui_core-8196945af58ab1cdb04d9aef54819722.node: undefined symbol: _ZdlPvm, version Qt_5

because its using system wide qt ?

windows is working fine

To Reproduce
Steps to reproduce the behavior:

  1. git clone https://github.com/nodegui/nodegui-starter
  2. edit nodegui version in package.json to something >= 0.45.0
  3. npm install
  4. npm start

Expected behavior
the window of the example app shows up

Desktop:

  • OS: macOS 11.6.1 (VM), Ubuntu 20.04 (VM), Debian 11
  • NodeGUI version >= 0.45.0

maybe this is a webpack configuration problem but I was not able to solve it

@dariusvelavicius
Copy link

I have the same issue.

@sedwards2009
Copy link
Collaborator

The nodegui-starter needs a big update and maybe a rethink.

@itxve
Copy link

itxve commented Jul 14, 2022

same issue,but got a version not match

Error: dlopen(/Users/apple/ts-dev-proj/nodegui-vite/node_modules/.pnpm/registry.npmmirror.com+@nodegui+nodegui@0.55.0/node_modules/@nodegui/nodegui/build/Release/nodegui_core.node, 1): Library not loaded: @rpath/QtSvg.framework/Versions/5/QtSvg
  Referenced from: /Users/apple/ts-dev-proj/nodegui-vite/node_modules/.pnpm/registry.npmmirror.com+@nodegui+nodegui@0.55.0/node_modules/@nodegui/nodegui/build/Release/nodegui_core.node
  Reason: Incompatible library version: nodegui_core.node requires version 5.15.0 or later, but QtSvg provides version 5.14.0
    at Object.Module._extensions..node (node:internal/modules/cjs/loader:1154:18)
    at Module.load (node:internal/modules/cjs/loader:975:32)
    at Function.Module._load (node:internal/modules/cjs/loader:816:12)
    at Module.require (node:internal/modules/cjs/loader:999:19)
    at require (node:internal/modules/cjs/helpers:93:18)
    at Object.<anonymous> (/Users/apple/ts-dev-proj/nodegui-vite/node_modules/.pnpm/registry.npmmirror.com+@nodegui+nodegui@0.55.0/node_modules/@nodegui/nodegui/dist/lib/utils/addon.js:3:15)
    at Module._compile (node:internal/modules/cjs/loader:1095:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1124:10)
    at Module.load (node:internal/modules/cjs/loader:975:32)
    at Function.Module._load (node:internal/modules/cjs/loader:816:12) {
  code: 'ERR_DLOPEN_FAILED'
}

@JaosnHsieh
Copy link

Same here.

node v16.14.0
macos v12.5.1

after running npm i and npm start in nodegui-starter

Error: dlopen(/Users/jh/git/nodegui-starter/dist/nodegui_core-11b86f3fc08e20c5e2f70d6cf217ccd5.node, 0x0001): Library not loaded: '@rpath/QtSvg.framework/Versions/5/QtSvg'
  Referenced from: '/Users/jh/git/nodegui-starter/dist/nodegui_core-11b86f3fc08e20c5e2f70d6cf217ccd5.node'
  Reason: tried: '/Users/runner/work/nodegui/nodegui/miniqt/5.15.2/clang_64/lib/QtSvg.framework/Versions/5/QtSvg' (no such file), '/Users/runner/work/nodegui/nodegui/miniqt/5.15.2/clang_64/lib/QtSvg.framework/Versions/5/QtSvg' (no such file), '/Library/Frameworks/QtSvg.framework/Versions/5/QtSvg' (no such file), '/System/Library/Frameworks/QtSvg.framework/Versions/5/QtSvg' (no such file)
    at Object.Module._extensions..node (node:internal/modules/cjs/loader:1154:18)
    at Module.load (node:internal/modules/cjs/loader:975:32)
    at Function.Module._load (node:internal/modules/cjs/loader:816:12)
    at Module.require (node:internal/modules/cjs/loader:999:19)
    at require (node:internal/modules/cjs/helpers:93:18)
    at eval (webpack://nodegui-starter/./node_modules/@nodegui/nodegui/build/Release/nodegui_core.node?:1:18)
    at Object../node_modules/@nodegui/nodegui/build/Release/nodegui_core.node (/Users/jh/git/nodegui-starter/dist/index.js:2632:1)
    at __webpack_require__ (/Users/jh/git/nodegui-starter/dist/index.js:3139:42)
    at eval (webpack://nodegui-starter/./node_modules/@nodegui/nodegui/dist/lib/utils/addon.js?:3:15)
    at Object../node_modules/@nodegui/nodegui/dist/lib/utils/addon.js (/Users/jh/git/nodegui-starter/dist/index.js:2549:1) {
  code: 'ERR_DLOPEN_FAILED'
}

@a7ul
Copy link
Collaborator

a7ul commented Sep 8, 2022

This should have ideally worked but as a workaround you could also install Qt 5.15.x in your machine and nodegui should pick it up too.

@JaosnHsieh
Copy link

Hi @a7ul thanks for the tips.
It's still not working.

qmake --version

QMake version 3.1
Using Qt version 5.15.5 in /usr/local/Cellar/qt@5/5.15.5_2/lib
➜  nodegui-starter git:(master) ✗ npm start

> nodegui-starter@1.0.0 start
> webpack && qode ./dist/index.js

asset nodegui_core-11b86f3fc08e20c5e2f70d6cf217ccd5.node 8.62 MiB [emitted] (auxiliary name: main)
asset index.js 1.43 MiB [emitted] (name: main)
asset 22c8769d0d1e03941f73a69e7842ebe4.png 6.58 KiB [emitted] [immutable] [from: assets/logox200.png] (auxiliary name: main)
runtime modules 670 bytes 3 modules
modules by path ./node_modules/@nodegui/nodegui/dist/lib/ 590 KiB 231 modules
modules by path ./node_modules/postcss/lib/*.js 480 KiB
  ./node_modules/postcss/lib/postcss.js 18.7 KiB [built] [code generated]
  ./node_modules/postcss/lib/declaration.js 6.21 KiB [built] [code generated]
  + 23 modules
modules by path ./node_modules/source-map/ 99.4 KiB
  ./node_modules/source-map/source-map.js 405 bytes [built] [code generated]
  ./node_modules/source-map/lib/source-map-generator.js 14 KiB [built] [code generated]
  + 9 modules
modules by path ./node_modules/cuid/ 2.88 KiB
  ./node_modules/cuid/index.js 2.18 KiB [built] [code generated]
  ./node_modules/cuid/lib/fingerprint.js 435 bytes [built] [code generated]
  + 2 modules
+ 13 modules
webpack 5.74.0 compiled successfully in 2659 ms
node:internal/modules/cjs/loader:1154
  return process.dlopen(module, path.toNamespacedPath(filename));
                 ^

Error: dlopen(/Users/jh/git/nodegui-starter/dist/nodegui_core-11b86f3fc08e20c5e2f70d6cf217ccd5.node, 0x0001): Library not loaded: '@rpath/QtSvg.framework/Versions/5/QtSvg'
  Referenced from: '/Users/jh/git/nodegui-starter/dist/nodegui_core-11b86f3fc08e20c5e2f70d6cf217ccd5.node'
  Reason: tried: '/Users/runner/work/nodegui/nodegui/miniqt/5.15.2/clang_64/lib/QtSvg.framework/Versions/5/QtSvg' (no such file), '/Users/runner/work/nodegui/nodegui/miniqt/5.15.2/clang_64/lib/QtSvg.framework/Versions/5/QtSvg' (no such file), '/Library/Frameworks/QtSvg.framework/Versions/5/QtSvg' (no such file), '/System/Library/Frameworks/QtSvg.framework/Versions/5/QtSvg' (no such file)
    at Object.Module._extensions..node (node:internal/modules/cjs/loader:1154:18)
    at Module.load (node:internal/modules/cjs/loader:975:32)
    at Function.Module._load (node:internal/modules/cjs/loader:816:12)
    at Module.require (node:internal/modules/cjs/loader:999:19)
    at require (node:internal/modules/cjs/helpers:93:18)
    at eval (webpack://nodegui-starter/./node_modules/@nodegui/nodegui/build/Release/nodegui_core.node?:1:18)
    at Object../node_modules/@nodegui/nodegui/build/Release/nodegui_core.node (/Users/jh/git/nodegui-starter/dist/index.js:2632:1)
    at __webpack_require__ (/Users/jh/git/nodegui-starter/dist/index.js:3139:42)
    at eval (webpack://nodegui-starter/./node_modules/@nodegui/nodegui/dist/lib/utils/addon.js?:3:15)
    at Object../node_modules/@nodegui/nodegui/dist/lib/utils/addon.js (/Users/jh/git/nodegui-starter/dist/index.js:2549:1) {
  code: 'ERR_DLOPEN_FAILED'
}

@NinnjA254
Copy link

I am experiencing the same issue as well

@webdevbrian
Copy link

I'm running into the same issue. node v18 npm v8.19.2

@TimurAztec
Copy link

Im running into the same problem.
Ubuntu 22.04 - Node v18.12.0 - npm v8.19.2

`nodegui-starter@1.0.0 start
webpack && qode ./dist/index.js

asset nodegui_core-290f6c2c05e3b47bcedc55c3bd1078e0.node 8.86 MiB [emitted] (auxiliary name: main)
asset index.js 1.43 MiB [emitted] (name: main)
asset 22c8769d0d1e03941f73a69e7842ebe4.png 6.58 KiB [emitted] [immutable] [from: assets/logox200.png] (auxiliary name: main)
runtime modules 670 bytes 3 modules
modules by path ./node_modules/@nodegui/nodegui/dist/lib/ 590 KiB 231 modules
modules by path ./node_modules/postcss/lib/*.js 480 KiB
./node_modules/postcss/lib/postcss.js 18.7 KiB [built] [code generated]
./node_modules/postcss/lib/declaration.js 6.21 KiB [built] [code generated]

  • 23 modules
    modules by path ./node_modules/source-map/ 99.4 KiB
    ./node_modules/source-map/source-map.js 405 bytes [built] [code generated]
    ./node_modules/source-map/lib/source-map-generator.js 14 KiB [built] [code generated]
  • 9 modules
    modules by path ./node_modules/cuid/ 2.88 KiB
    ./node_modules/cuid/index.js 2.18 KiB [built] [code generated]
    ./node_modules/cuid/lib/fingerprint.js 435 bytes [built] [code generated]
  • 2 modules
  • 13 modules
    webpack 5.74.0 compiled successfully in 3451 ms
    node:internal/modules/cjs/loader:1154
    return process.dlopen(module, path.toNamespacedPath(filename));
    ^

Error: libQt5Svg.so.5: cannot open shared object file: No such file or directory
at Object.Module._extensions..node (node:internal/modules/cjs/loader:1154:18)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:816:12)
at Module.require (node:internal/modules/cjs/loader:999:19)
at require (node:internal/modules/cjs/helpers:93:18)
at eval (webpack://nodegui-starter/./node_modules/@nodegui/nodegui/build/Release/nodegui_core.node?:1:18)
at Object../node_modules/@nodegui/nodegui/build/Release/nodegui_core.node (/home/pinglord/Projects/NodeJS/nodegui-starter/dist/index.js:2632:1)
at webpack_require (/home/pinglord/Projects/NodeJS/nodegui-starter/dist/index.js:3139:42)
at eval (webpack://nodegui-starter/./node_modules/@nodegui/nodegui/dist/lib/utils/addon.js?:3:15)
at Object../node_modules/@nodegui/nodegui/dist/lib/utils/addon.js (/home/pinglord/Projects/NodeJS/nodegui-starter/dist/index.js:2549:1) {
code: 'ERR_DLOPEN_FAILED'
}`

Manually changing NodeGUI version to 0.44.0 helped, but it`s not ok.

@superlbr
Copy link

superlbr commented Dec 3, 2022

just link framework, such as

sudo ln -s /Users/xxx/Developer/updater/node_modules/_@nodegui_nodegui@0.57.3@@nodegui/nodegui/miniqt/5.15.2/clang_64/lib/QtCore.framework /Library/Frameworks/QtCore.framework

@ZtereoHYPE
Copy link

getting same error as debian above, but on Fedora

@CryptoNawwa
Copy link

Same issue, on MacOS Montery 12.6

@ldanadrian
Copy link

Same error, MacOS Ventura 13.0.1

@jsyang
Copy link

jsyang commented Jan 12, 2023

Got it to work on my machine (MacOS Monterey 12.5). I checked the dependency's build/Release directory and it seems like installing nodegui into a project doesn't correctly rebuild the native artifacts in there.

So run this (starting from your project root):

pushd node_modules/@nodegui/nodegui
npm run build:addon
popd

Then run npm run start as before.

@danroconnor
Copy link

Manually rebuilding (using jsyang's commands) did not work for me, it seemed like something is still linking against my system's qt libs (or I failed to rebuild properly)

c++filt says _ZdlPvm is operator delete(void*, unsigned long) fwiw... i think that's c++abi level stuff.

For now I've downgraded to 0.44.0.

@eldoy
Copy link

eldoy commented Mar 15, 2023

It works using @jsyang instructions on MacOS Monterey. Had to install cmake first:

brew install cmake

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests