我正在为同事 C 库开发 Node.js 包装器模块。该库以共享对象 (.so) 形式创建,用于动态链接。
我的 CPP 模块文件以
#include "path/to/lib/source/lib.h"
并使用以下 wscript 构建
def set_options(ctx):
ctx.tool_options('compiler_cxx')
def configure(ctx):
ctx.check_tool('compiler_cxx')
ctx.check_tool('node_addon')
ctx.env.append_value('LINKFLAGS', ['-l:lib.so', '-L/path/to/lib.so/'])
def build(ctx):
t = ctx.new_task_gen('cxx', 'shlib', 'node_addon')
t.source = ['module.cpp']
t.target = 'module'
当我继续调用我的模块时,它又调用库,我收到以下错误:
node: symbol lookup error: <path/to/module.node>:
undefined symbol: <name of library call>
我尝试使用“ldd module.node”转储模块的依赖项,但我有点怀疑,因为它没有提到我的 .so 文件。
任何帮助深表感谢!