Я пытаюсь скомпилировать аддон C++, который использует внешнюю библиотеку. Мой файл bindings.gyp выглядит следующим образом:Ошибка: undefined symbol: omp_init_lock только при компиляции с node-gyp
{
"targets": [
{
"target_name": "addon",
"sources": [ "addon.cc" ],
"include_dirs": [
"<!(node -e \"require('nan')\")"
],
"libraries":[
"/home/ubuntu/workspace/libdds.a"
],
}
]
}
Когда я пытаюсь скомпилировать его с узлом-плут, он отлично компилируется, но во время выполнения я получаю следующее сообщение об ошибке:
Error: /home/ubuntu/workspace/build/Release/addon.node: undefined symbol: omp_init_lock
at Error (native)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/home/ubuntu/workspace/addon.js:1:75)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
omp_int_lock не в коде addon.cc, но вместо этого в библиотеке libdds.a, которую я пытаюсь использовать. Я попытался взять свой код и просто преобразовать его в программу командной строки. Составив его так:
g++ -o ddsolver -O2 -Wall leadsolver.cpp libdds.a -lgomp
Он компилируется и работает отлично. Кто-нибудь видел эту проблему раньше?