问题标签 [extconf.rb]

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 投票
2 回答
335 浏览

c - 当测试函数需要参数时,have_func 的正确用法是什么?

我有extconf.rb以下几行:

所以,cblas_dgemm肯定是在cblas.h。当我查看mkmf.log时,我发现这个检查实际上是在寻找两件事:

  1. 某处的_cblas_dgemm符号(?)
  2. 一个可调用cblas_dgemmcblas.h.

两个测试都失败了。我认为前者失败了,因为我需要一条dir_config线cblas,也许还有一条线have_library('cblas')

但我不知道如何使后一个测试通过(参见要点的第 24 行)。是否可以将一个块传递给它,have_func以便它实际上用合理的参数调用它?还是有其他方法可以运行此测试?还是我必须dir_config正确设置这些东西?

顺便说一下,这是第 24 行:

是的,当然,cblas_dgemm需要很多参数——其中一些是矩阵。

mkmf令人沮丧的是,关于这些功能的文档很少。

0 投票
1 回答
1111 浏览

extconf.rb - 没有这样的文件或目录 -- extconf.rb (Loa dError) - 安装 json (1.8.0)

我可能应该首先说我是 Rails 新手。当我尝试运行捆绑安装时,出现了这个特定的错误消息。一旦安装到 json,就会弹出错误。

==================================================== ============================

安装 json (1.8.0)

Gem::Installer::ExtensionBuildError: 错误: 无法构建 gem 原生扩展。

D:/Dev/RailsInstaller/Ruby1.9.3/bin/ruby.exe: 没有这样的文件或目录 -- extconf.rb (Loa dError)

Gem 文件将继续安装在 D:/Dev/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gem s/json-1.8.0 以供检查。

结果记录到 D:/Dev/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/json-1.8.0/ext/json/ext/generator/gem_make.out

安装 json (1.8.0) 时出错,Bundler 无法继续。gem install json -v '1.8.0'在捆绑之前确保成功。

==================================================== ==============================

gem_make.out 日志文件正在显示

==================================================== ==============================

D:/Dev/RailsInstaller/Ruby1.9.3/bin/ruby.exe extconf.rb

D:/Dev/RailsInstaller/Ruby1.9.3/bin/ruby.exe: 没有这样的文件或目录 -- extconf.rb (LoadError)

==================================================== ==============================

我已经尝试运行gem install json并且基本上得到了相同的错误消息。DevKit 已经安装。重新安装它没有任何区别。

Ruby 版本是 1.9.3p392 Rails 版本是 3.2.13 操作系统是 Windows7 64bit

使用 ruby​​installer 完成安装。

任何帮助将不胜感激。

0 投票
2 回答
830 浏览

mysql - 无法安装 gem install mysql2 Ruby WINx64

我一直在寻找这个错误,重新安装了一切,并尝试了一切。我在这里找到的都是旧帖子和旧版本。是的,我已经下载了 MySQL C 连接器并将 lib 移动到该 ruby​​ 目录。依然没有。

我正在运行 PC WINx64 Ruby 版本 2.0.0-p195 DevKit 的最新版本

Windows 一直在给我带来问题。但这就是我在工作中的全部。感谢你们。

0 投票
1 回答
1013 浏览

c - 简单的 Ruby C 扩展找不到 ruby​​.h

我为 Ruby 编写了一个非常简单的 C 扩展。不幸的是,它找不到ruby.h.

这是extconf.rb

这是唯一的源文件:

当我尝试编译它时,我收到以下错误:

完整的要点。请注意,行号已关闭,因为我主要注释掉了代码而不是删除它。

有趣的是,如果我尝试在不清理的情况下再次编译,我会得到一个不同的错误:

(完整的输出再次包含在上面的要点中。)

也许这是一个线索?

为什么找不到ruby.h?当我编译NMatrixSciRuby rb-gsl fork时,它们都可以正常工作并且定位没有问题ruby.h。(为了记录,我写了 NMatrix、C 扩展和所有的——我把这个特定的扩展基于那个extconf.rb。)

0 投票
0 回答
263 浏览

ruby-on-rails - 检查 sqlite3 ...没有 extconf.rb 失败

请不要只是关闭

我最近开始学习 rails 并且在运行 rails server 命令时遇到问题,我收到以下错误消息:

接下来是来自消息的 16 条(如果被问到,我会添加它们)。

我的系统是 Windows XP,Ruby 版本 2.0.0p195,Rails 版本 4.0.0。

我很乐意应要求提供更多信息。

我发现的所有解决方案我都尝试过,但都没有奏效。

我尝试过的解决方案:

1) 背包解决方案

2) ruby​​ setup.rb 配置 --with-sqlite-include=c:\sqlite-autoconf-3071700

3)我尝试了 sqlite-amalgamation 下载。

4)卸载并重新安装sqlite3、ruby、rails、rubygems、dev tools等。

5) 使用 ubuntu 13.04 运行虚拟机(rails server 命令正在工作,就像我说 rails new server 一样)

6)和其他几个命令行运行和各种下载。

它多次告诉我它安装了 sqlite3 版本 1.3.7,但我仍然得到相同的结果。

请提前感谢您的帮助!!

PS 许多其他的基于 Windows 7 或更高版本以及更早版本的 ruby​​ 和/或 rails。

0 投票
1 回答
327 浏览

c++ - extconf.rb:如何根据头文件更改生成 makefile 目标?

在我的extconf.rb,我有

这些中的每一个都依赖于多个头文件。如果 Itouch foo.cpptouch bar.cpp, 然后 do rake compile,它将重新编译相应的目标文件。

但是触摸.h文件显然不会产生相同的效果。我不记得这是我使用extconf.rbC/C++ 编码的症状还是只是一个事实。

有什么方法可以指导我extconf.rb编写一个知道这些头文件的makefile吗?

0 投票
2 回答
85 浏览

c - 使用 Ruby 调用命令行工具

我试图调用的命令行工具基本上将文件转换为另一种格式。

我正在使用这个[教程] [1],但遇到了麻烦。我不断得到invalid multibyte char (UTF-8) (SyntaxError)

我只是将我的命令行工具(使用 C 制作)倾倒在垃圾箱中,并试图让它工作。有人可以阐明我如何使这项工作正常进行吗?

0 投票
2 回答
166 浏览

c - 使用 extconf.rb 设置预处理器定义

我正在为 Ruby 编写 C 扩展,并且在 extconf.rb 文件中有类似的内容:

因此,如果缺少 zlib,安装过程将中止。相反,由于我的扩展可以在没有 zlib 的情况下使用 AND,我想做如下的事情;

我怎样才能做到这一点?

编辑:问题在于 if...end 语句中的注释:如何为编译器添加 -DHAVE_ZLIB 定义?

0 投票
1 回答
314 浏览

ruby - 使用 MKMF 创建 makefile

如何使用 MKMF 创建复杂的 Makefile?我需要指定目标,包括其他 makefile,指定宏等等。那可能吗?我对 MKMF 很陌生,我只在网上找到了如何使用 MKMF 的非常基本的示例。

例如,我的 Makefile 开头需要以下行:

0 投票
1 回答
245 浏览

ruby - extconf.rb 如何定义要使用的源文件

我有一个 ruby​​ 扩展的小项目,它的组织方式如下:

一切正常,但我需要将一些源文件放在一个目录中(我在 git repos 中创建/修改/测试所有这些源文件,以便在测试我的 C++ 代码时只需要更新这个目录)。所以新组织看起来像这样:

我现在的问题是如何指定 extconf.rb 在哪里找到源文件(extconf.rb 默认使用当前目录中的源文件)。

我已经在 extconf.rb 成功测试了这个:

我收到一条错误消息,说链接器找不到一些“.o”文件,所以我添加了这个:

但这没有用。