J'écrivais C++ Addon pour Node.js. Essayé d'utiliser la bibliothèque d'échantillons appelée libSample.so qui a la déclaration de la fonction PrintHello:.Erreur: Impossible d'ouvrir le fichier d'objet partagé: Aucun fichier ou répertoire de ce type
void printHello() {
std::cout << "Hello World\n";
}
Il a bien fonctionné (en utilisant node-gyp configure build
et Compilé exécuté node ./
)
Quand j'ai essayé d'utiliser une autre bibliothèque plus complexe appelé libcore .alors. L'erreur suivante s'est produite lors du démarrage de l'exécution. Compilation et configure trouver passé:
module.js:597
return process.dlopen(module, path._makeLong(filename));
^
Error: libPlayerCore.so: cannot open shared object file: No such file or directory
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> (/home/jasurn/CLionProjects/JsTest/hello.js:2:15)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
un morceau de l'utilisation libCore.so
//#include <core.h> definition of core library lies in this header
void CreateObject(const FunctionCallbackInfo<Value>& args) {
Isolate* isolate = args.GetIsolate();
Local<Object> obj = Object::New(isolate);
obj->Set(String::NewFromUtf8(isolate, "msg"), args[0]->ToString());
//usage of core library
Core core;
args.GetReturnValue().Set(obj);
}
Le fichier binding.gyp: le chemin est correct, car il est travaillé avec une autre bibliothèque :)
{
"targets": [
{
"target_name": "addon",
"sources": [ "hello.cc" ],
"libraries": [
"/home/jasurn/CLionProjects/JsTest/libPlayerCore/lib/libCore.so"
]
}
]
}
Je serai apprécié pour des réponses ou des suggestions!
L'erreur est assez claire, le noeud ne trouve pas votre bibliothèque d'addons. Vous pouvez trouver des informations pertinentes sur la façon dont le nœud effectue une recherche sur les modules [ici] (https://nodejs.org/api/modules.html). – VTT
@VTT La chose intéressante est qu'il trouve une autre bibliothèque dans le même répertoire. Mais quand j'essaie d'utiliser libCore.so. Il affiche une telle erreur. Merci pour le lien! –