dturing / node-gstreamer-superficial

Superficial gstreamer binding
MIT License
127 stars 45 forks source link

I directly transplant the module from one computer to other computer, but it not work #14

Closed aokihu closed 7 years ago

aokihu commented 7 years ago

I move the project from computer A to computer B, and don't rebuild getreamer-superficial, I think it will work well as other node modules, but it is not

Two computer are all ARM arch, and chip is small


  return process.dlopen(module, path._makeLong(filename));
                 ^

Error: File not found
    at Error (native)
    at Object.Module._extensions..node (module.js:597:18)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/root/gst-test/test.js:1:81)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)```
dturing commented 7 years ago

as you know, node-gstreamer-superficial dynamically links against libgstreamer (in fact, against a number of different gstreamer-related libs). The node module you build on one host is not transferable to another- unless the environment is exactly the same there considering all the required libs. I suspect some library is missing on your "computer B".

To see which libs a binary is linked against, you can use ldd:

# ldd build/Release/gstreamer-superficial.node 
    linux-vdso.so.1 (0x00007ffe9ccf1000)
    libgstreamer-1.0.so.0 => /usr/lib/libgstreamer-1.0.so.0 (0x00007f92d0523000)
    libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00007f92d02d1000)
    libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007f92cffbe000)
    libgstapp-1.0.so.0 => /usr/lib/libgstapp-1.0.so.0 (0x00007f92cfdb0000)
    libgstbase-1.0.so.0 => /usr/lib/libgstbase-1.0.so.0 (0x00007f92cfb4c000)
    libgstvideo-1.0.so.0 => /usr/lib/libgstvideo-1.0.so.0 (0x00007f92cf8c1000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f92cf537000)
    libm.so.6 => /usr/lib/libm.so.6 (0x00007f92cf233000)
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f92cf01c000)
    libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f92cedff000)
    libc.so.6 => /usr/lib/libc.so.6 (0x00007f92cea61000)
    libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00007f92ce85d000)
    librt.so.1 => /usr/lib/librt.so.1 (0x00007f92ce653000)
    libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f92ce44f000)
    libffi.so.6 => /usr/lib/libffi.so.6 (0x00007f92ce246000)
    libpcre.so.1 => /usr/lib/libpcre.so.1 (0x00007f92cdfd3000)
    liborc-0.4.so.0 => /usr/lib/liborc-0.4.so.0 (0x00007f92cdd55000)
    /usr/lib64/ld-linux-x86-64.so.2 (0x000055e3d07b0000)
dturing commented 7 years ago

@aokihu, any news about this? Did you get it to work? It'd be great if you can leave your solution for others to find here.

aokihu commented 7 years ago

@dturing I will try again, thanks your reply very much