2

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を見ると、このチェックが実際に 2 つのことを調べていることがわかります。

  1. _cblas_dgemmどこかの記号(?)
  2. cblas_dgemmの呼び出し可能オブジェクトcblas.h

どちらのテストも失敗しています。dir_configの行が必要なためcblas、前者は失敗していると思いますhave_library('cblas')

しかし、後者のテストをパスさせる方法がわかりません ( gistの 24 行目を参照)。ブロックを渡して、have_func実際に妥当な引数で呼び出すことはできますか? または、このテストを実行する他の方法はありますか? それとも、dir_config適切にセットアップする必要がありますか?

ちなみに24行目です。

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

もちろん、cblas_dgemm多くの引数が必要です。その一部は行列です。

これらの機能に関するドキュメントがほとんどないことは、イライラさせられmkmfます。

4

2 に答える 2

0

mkmf.rbofではruby 1.9.3p392、前者が失敗した場合にのみ後者のテストが実行されます。前者が通過すると、have_func成功します。したがって、後者のパスを作成する必要はありません。詳細については、 を参照しtry_funcmkmf.rbください。

参考までに、mkmf.rbon 2013-04-13 11:00:25では、次のような引数を指定できるようですhave_func("some_func(some_arg, another_arg)", ["foo.h"])

于 2013-05-03T13:09:22.760 に答える