gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 08:49:51 26 4
gpt4 key购买 nike

我有一个包含以下几行的 extconf.rb:

have_header("cblas.h")                 # checking for cblas.h... yes
have_func("cblas_dgemm", ["cblas.h"]) # checking for cblas_dgemm() in cblas.h... no
create_header("nmatrix_config.h") # creating nmatrix_config.h

因此,cblas_dgemm 肯定在cblas.h 中。当我看 mkmf.log ,我看到这个检查实际上是在寻找两件事:

  1. _cblas_dgemm 某处符号 (?)
  2. cblas.h 中的可调用cblas_dgemm

两个测试都失败了。我假设前者失败了,因为我需要 cblasdir_config 行,也许还有 have_library('cblas')

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

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

conftest.c:7:1: error: too few arguments to function ‘cblas_dgemm’

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

令人沮丧的是,关于这些 mkmf 函数的文档太少了。

最佳答案

不幸的是,have_func 的文档似乎很少,但经过一些挖掘,我发现了一些可能有帮助的东西:

[25] pry(main)> have_func("clapack_dgetrf", "/usr/local/atlas/include/clapack.h")
checking for clapack_dgetrf() in /usr/local/atlas/include/clapack.h... no
=> false
[26] pry(main)> have_func("int clapack_dgetrf", "/usr/local/atlas/include/clapack.h")
checking for int clapack_dgetrf() in /usr/local/atlas/include/clapack.h... yes
=> true

因此,从本质上讲,您似乎至少需要包含返回类型才能使 have_func 正常工作。你能证实这在你的机器上有效吗?

关于c - 当测试函数需要参数时 have_func 的正确用法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15726199/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com