C++ 为什么链接器看不到我的文件?

C++ Why can't the linker see my files?

本文关键字:我的 文件 看不到 为什么 链接 C++      更新时间:2023-10-16

在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'

在名为monkey的目录中的CCD_ 2中定义CCD_。我正在包含monkey目录和monkey.cc文件的目录中运行上述命令。

编辑:

wscript,这是节点waf运行的python脚本,看起来像这样:

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中添加monkey.lib='crypto'