C ++ Почему компоновщик не видит мои файлы? - PullRequest
0 голосов
/ 03 июля 2011

Сборка собственного модуля для Node.js в Cygwin / Windows:

У меня есть файл 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, которыйВаф работает так:

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'

Чего мне не хватает ???

Ответы [ 2 ]

3 голосов
/ 03 июля 2011

Это ошибка компоновщика, а не ошибка компилятора. У вас есть определение для функции? (Не просто декларация.) И вы уверены, что это связано?

0 голосов
/ 11 июля 2011

Добавьте monkey.lib='crypto' в тексте.

...