1
我正在爲Node.js編寫C++插件。試圖用所謂的libSample.so樣本庫,它具有功能printHello聲明:錯誤:無法打開共享目標文件:沒有這樣的文件或目錄
void printHello() {
std::cout << "Hello World\n";
}
它能正常工作(使用node-gyp configure build
編譯和執行node ./
)
當我試圖用另一種稱爲libCore更復雜的庫。所以。開始執行時產生以下錯誤。編譯和配置通過發現:
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)
一些片使用的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);
}
的binding.gyp文件:路徑是正確的,因爲它與其他庫:)
工作{
"targets": [
{
"target_name": "addon",
"sources": [ "hello.cc" ],
"libraries": [
"/home/jasurn/CLionProjects/JsTest/libPlayerCore/lib/libCore.so"
]
}
]
}
我將不勝感激的答案或建議!
錯誤很明顯,節點找不到你的插件庫。您可以找到有關節點如何在模塊上執行搜索的相關信息[此處](https://nodejs.org/api/modules.html)。 – VTT
@VTT有趣的是它在同一個目錄中找到另一個庫。但是當我嘗試使用libCore.so。它顯示這樣的錯誤。感謝您的鏈接! –