问题标签 [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.

0 投票
1 回答
1767 浏览

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 的口头禅是

0 投票
2 回答
308 浏览

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???

0 投票
1 回答
360 浏览

c++ - 疯狂地尝试针对 OpenSSL/libcrypto 进行编译

我一直在尝试这样做近 3 天。它让我发疯。

你可以想象我对 C++ 很陌生。

谁能给我一步一步的说明来做一个hello world程序,利用openssl中的一个函数并从Windows上的cygwin shell编译它。

0 投票
1 回答
1088 浏览

node.js - 从源代码编译 node.js 时,如何将 CFLAGS 更改为 -g -O0?

我试过了:

但它仍然使用默认标志-g -O3​​when make.

有什么办法解决吗?

0 投票
1 回答
5052 浏览

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”。此外,任何有关正确安装的提示都将不胜感激。

0 投票
2 回答
2453 浏览

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 位。如何抑制一种架构的标志?

0 投票
0 回答
317 浏览

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”?

0 投票
2 回答
152 浏览

c++ - 跟踪可执行文件中的代码版本

我有一个用 C++ 编写的合理大小(大约 40k 行)的机器学习系统。这仍在积极开发中,即使我对代码进行了更改,我也需要定期运行实验。

我的实验输出被捕获在简单的文本文件中。在查看这些结果时,我想做的是找出产生它的代码的确切版本。我通常会同时运行大约 5 到 6 个实验,每个实验的代码版本略有不同。

例如,我想知道一组结果是通过编译文件 A 的版本 1、文件 B 的版本 2 等获得的(我只需要一些标识符,“git describe”的输出在这里就可以了)。

我的想法是在编译二进制文件时以某种方式包含此信息。这样,这可以与结果一起打印出来。

任何建议如何以一种很好的方式完成。特别是,使用 git 有什么好的方法吗?

0 投票
1 回答
172 浏览

c++ - 如何让 Anjuta 突出显示我的构建系统 (waf) 产生的错误/行?

Waf 输出如下错误

如何让 Anjuta 在底部显示错误并允许我通过单击跳转到错误?

如何配置 Anjuta 以在编译时运行我的构建系统?

0 投票
1 回答
669 浏览

c++ - Waf 在 C++ 构建上抛出错误

我们的项目包含很多 c++ 源代码,到目前为止,我们一直在使用 make 来构建所有内容,但这需要很长时间。所以我偶然发现了 waf,它工作得很好,并且大大加快了构建速度。然而,每次我进行完整构建时,我都会遇到一些毫无意义的构建错误。如果我现在进行增量构建,大多数情况下第一次无法构建的一些源现在构建,其他一些仍然失败。在另一个增量构建中,我最终将获得成功的构建。

我已经尝试在单独的步骤中构建单独的库,以防万一尝试并行构建任何依赖库,但错误仍然出现。

编辑:我不断收到的错误似乎与我的代码无关,例如

在另一个“waf build”之后,我不再收到此错误。

EDIT2:我的库的构建步骤如下所示:

MAIN、RW、HEADERS 只是我们使用的一些标志和外部库。

有没有人在他们的系统上看到过类似的行为?甚至是解决方案?