构建用于Node.js的的Cygwin/Windows下一个本机模块:C++为什么链接器无法看到我的文件?
我有这样的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
文件的目录运行上述命令。
编辑:
WScript的,这是Python脚本,节点WAF运行是这样的:
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'
我在想什么???
我们可以看看一些代码吗? – foxy
我已经添加了构建脚本。代码没有问题,因为这是我正在编译的现有代码。我只需要把事情放在正确的地方! – Tom