在Cygwin / Windows下为Node.js构建本机模块:
我有一个带有这个的monkey.cc文件:
#include <monkey/monkey.h>
正在运行
node-waf configure build
我得到以下
'configure' finished successfully (0.351s)
Waf: Entering directory `/usr/src/build'
[2/2] cxx_link: build/default/monkey_1.o -> build/default/monkey.node build/default/libmonkey.dll.a
Creating library file: default/libmonkey.dll.a
然后出现以下错误:
default/monkey_1.o:/usr/src/build/../monkey.cc:144: undefined reference to `_monkeyFoo'
monkeyFoo
在monkey.h
中定义,该monkey
位于名为monkey
的目录中。我从包含monkey.cc
目录和import os
srcdir = '.'
blddir = './build'
VERSION = '0.0.2'
def set_options(opt):
opt.tool_options('compiler_cxx')
def configure(conf):
conf.check_tool('compiler_cxx')
conf.check_tool('node_addon')
def build(bld):
monkey = bld.new_task_gen('cxx', 'shlib', 'node_addon')
monkey.cxxflags = ["-g", "-D_FILE_OFFSET_BITS=64", "-D_LARGEFILE_SOURCE", "-Wall", "-L/usr/lib", "-lssl"]
monkey.chmod = 0755
monkey.target = 'monkey'
monkey.source = 'monkey.cc'
文件的目录运行上述命令。
修改
wscript,这是node-waf运行的python脚本如下所示:
{{1}}
我错过了什么?
答案 0 :(得分:3)
这是链接器错误,而不是编译器错误。你有这个功能的定义吗? (不只是一个声明。)你确定它被链接了吗?
答案 1 :(得分:0)
在wscript中添加monkey.lib='crypto'
。