问题标签 [waf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 为 Node.js 编译本机 C++ 模块,链接到 openSSL/libcrypto 失败
我正在使用 Cygwin/Windows,并且正在尝试为 node.js 构建本机模块。我打算使用 OpenSSL 库。我已经从 Cygwin 包管理器安装了 openssl。
我的 .cc 文件中有以下几行:
和
但是当我尝试用 链接/编译它时node-waf configure build
,我得到:
编辑:
部分构建脚本:
(我尝试添加 -lcrypto 但仍然得到相同的结果。我还尝试了“-lssl32”、“-lssleay32”、“-llibeay32”的各种组合。)
编辑
构建脚本的输出:
编辑
我在 usr/include/openssl 中有头文件 dh.h
我在 /usr/lib/ 中有所需的文件(libssl32.dll、libeay32.dll 和 ssleay32.dll)
答案
jHackTheRipper 回答了这个问题并得到了赞誉,但最终的答案隐藏在他的答案下方的评论中。总而言之,waf 的口头禅是
c++ - C++ Why can't the linker see my files?
Building a native module for Node.js under Cygwin / Windows:
I have a monkey.cc file with this:
running
I get the following
then the following error:
monkeyFoo
is defined in monkey.h
which is in a directory named monkey
. I am running the above command from the directory containing monkey
directory and monkey.cc
file.
EDIT:
wscript, which is the python script that node-waf runs looks like this:
What am I missing???
c++ - 疯狂地尝试针对 OpenSSL/libcrypto 进行编译
我一直在尝试这样做近 3 天。它让我发疯。
你可以想象我对 C++ 很陌生。
谁能给我一步一步的说明来做一个hello world程序,利用openssl中的一个函数并从Windows上的cygwin shell编译它。
node.js - 从源代码编译 node.js 时,如何将 CFLAGS 更改为 -g -O0?
我试过了:
但它仍然使用默认标志-g -O3
when make
.
有什么办法解决吗?
python - 如何让 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 人来说是愚蠢的,但不如 node-waf 人的同样错误那么愚蠢,因为他们必须遵守操作系统的规则。
所以,请告诉我有一些我还没有找到的开关,上面写着“使用 Python2.6”。此外,任何有关正确安装的提示都将不胜感激。
macos - 在 OSX 上使用 Waf 编译 OpenGL/SDL 应用程序时,如何抑制“-arch”、“x86_64”标志?
我需要抑制 Waf 传递给 GCC 的“-arch x86_64 -arch i386”标志。
我正在构建一个SDL/Opengl应用程序。如果我链接到 32 位 SDL 运行时,我会收到错误
如果我链接到 64 位 SDL 运行时,我会收到错误“架构 x86_64 的未定义符号”
编译器显然正在使用标志
我知道这会导致 OSX 上的 GCC 尝试为这两种架构进行编译。我想编译为 64 位,或者编译为 32 位。如何抑制一种架构的标志?
c - 如何强制 Waf 仅为 OSX 上的“-arch i386”目标而不是“-arch x86_64 -arch i386”构建?
Waf 正在添加“-arch x86_64 -arch i386”并尝试创建通用二进制文件。
链接失败,因为我只有 32 位运行时,而 Waf 正在尝试创建通用二进制文件。如何让 Waf 删除“-arch x86_64 -arch i386”标志并仅编译“-arch i386”?
c++ - 跟踪可执行文件中的代码版本
我有一个用 C++ 编写的合理大小(大约 40k 行)的机器学习系统。这仍在积极开发中,即使我对代码进行了更改,我也需要定期运行实验。
我的实验输出被捕获在简单的文本文件中。在查看这些结果时,我想做的是找出产生它的代码的确切版本。我通常会同时运行大约 5 到 6 个实验,每个实验的代码版本略有不同。
例如,我想知道一组结果是通过编译文件 A 的版本 1、文件 B 的版本 2 等获得的(我只需要一些标识符,“git describe”的输出在这里就可以了)。
我的想法是在编译二进制文件时以某种方式包含此信息。这样,这可以与结果一起打印出来。
任何建议如何以一种很好的方式完成。特别是,使用 git 有什么好的方法吗?
c++ - 如何让 Anjuta 突出显示我的构建系统 (waf) 产生的错误/行?
Waf 输出如下错误
如何让 Anjuta 在底部显示错误并允许我通过单击跳转到错误?
如何配置 Anjuta 以在编译时运行我的构建系统?
c++ - Waf 在 C++ 构建上抛出错误
我们的项目包含很多 c++ 源代码,到目前为止,我们一直在使用 make 来构建所有内容,但这需要很长时间。所以我偶然发现了 waf,它工作得很好,并且大大加快了构建速度。然而,每次我进行完整构建时,我都会遇到一些毫无意义的构建错误。如果我现在进行增量构建,大多数情况下第一次无法构建的一些源现在构建,其他一些仍然失败。在另一个增量构建中,我最终将获得成功的构建。
我已经尝试在单独的步骤中构建单独的库,以防万一尝试并行构建任何依赖库,但错误仍然出现。
编辑:我不断收到的错误似乎与我的代码无关,例如
在另一个“waf build”之后,我不再收到此错误。
EDIT2:我的库的构建步骤如下所示:
MAIN、RW、HEADERS 只是我们使用的一些标志和外部库。
有没有人在他们的系统上看到过类似的行为?甚至是解决方案?