Tag: waf

为Node.js编译本地C ++模块,链接到openSSL / libcrypto失败

我正在使用Cygwin / Windows,我正在尝试为node.js构build本地模块。 我打算使用OpenSSL库。 我已经从Cygwin软件包pipe理器安装了openssl。 我的.cc文件中有以下几行: #include <openssl/dh.h> 和 DH* public_dh_key = DH_new(); 但是当我尝试链接/编译它与node-waf configure build ,我得到: undefined reference to _DH_new 编辑: 构build脚本的一部分: def build(bld): ppp= bld.new_task_gen('cxx', 'shlib', 'node_addon') ppp.cxxflags = ["-g", "-D_FILE_OFFSET_BITS=64", "-D_LARGEFILE_SOURCE", "-Wall", "-L/usr/lib", "-lssl"] … (我已经尝试添加-lcrypto,但仍得到相同的结果,我也尝试了各种组合“-lssl32”,“ – lssleay32”,“ – llibeay32”。) 编辑 构build脚本的输出: $ node-waf configure build Checking for program g++ or c++ […]

如何使用debugging符号创build节点waf构build二进制文件?

使用–verbose运行node-waf显示它使用g ++和-g 。 这似乎是默认的。 我找不到一个明显的方法来告诉node-waf在没有debugging符号的情况下构buildnode.js扩展。 有一个简单的方法吗? 编辑:我知道如何添加编译器选项。 问题是如何删除某个选项?

waf找不到现有的库

我正在尝试为node.js编写一个C ++模块。 节点正在使用waf作为构build器。 我想检查configuration,如果库“sigar”存在。 我正在试图这样做: def configure(conf): conf.check_cxx(lib='sigar') 当我运行“node-waf configure”时,我得到以下消息: Checking for library sigar : not found 但是libsigar.so存在: # whereis libsigar libsigar: /lib64/libsigar.so 在安装“libsigar”库之后,我也运行了ldconfig。 节点模块编译,链接和工作没有错误。 其他库如libm,libboost_system等可以在configure上find。 有人能告诉我我做错了什么吗? 安装一个库有没有什么特别的事情比只复制一个* .so到库path并运行ldconfig? 谢谢你的帮助。

Node.js模块 – 添加链接依赖

我正在为一个同事C库的Node.js包装模块工作。 该库是在共享对象(.so)窗体中创build的,用于dynamic链接。 我的CPP模块文件开始 #include "path/to/lib/source/lib.h" 并用以下的wscript构build 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文件。 任何帮助深表感谢!

我如何获得node-waf的安装?

首先,道具谁去做node.js 我已经使用了它不到一天,我已经考虑将它用于我现在使用Python的东西。 实际上,无论谁做node.js,都应该考虑将它用于现在使用Python的东西。 显然有一个名为node-waf的工具,它是Python中的工具,对于npm来说是必须的,当然对于其他任何有用的工具,npm都是必需的。 我认为我的原始安装变坏了,因为node-waf(在/mnt/michael/bin/node-waf )找不到Scripting.py(在/mnt/michael/node/tools/wafadmin/它正在寻找不存在的/mnt/michael/node/tools/../lib/node/wafadmin/ )。 所以我砍了一下node-waf指向正确的导演,继续前进,发现了一个更为严重的问题。 结果node-waf 不是用“Python”编写的,但是在Python2.6中,这是一种非常好的语言,它是我自己使用的语言,但它不是我使用的系统默认的语言。 系统是CentOS,它要求Python2.4是命令“python”调用的Python。 是的,CentOS人员这样做是愚蠢的,但是比节点人员同样的错误更愚蠢,因为他们必须服从操作系统的规则。 所以,请告诉我有一些开关,我还没有find说“使用Python2.6”。 另外,任何有关正确安装的提示将不胜感激。