問題タブ [mkmf]

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 に答える
773 参照

c - mkmfは、C拡張子をコンパイルするときに、サブフォルダー内のファイルを無視します

Cのソースコードを次のように整理したいと思います。

この設定をで正しく機能させるのに問題がありますmkmfnative_extension/libに含まれているのファイルはnative_extension.c完全に無視されています。

拡張機能をビルドすると、コンパイルされるだけで、実行しようとするとシンボルルックアップエラーが発生native_extension.{h,c}する不完全なメッセージが表示されます。native_extension.{so,dll}

これを機能させる方法はありますか?

0 投票する
1 に答える
882 参照

ruby - ルビーのmkmfで外部cライブラリにリンクする方法は?

このディレクトリには次のファイルがあります。

irbで次のようにして、上記のライブラリが存在するかどうかをrubygemに判断させようとしています。

誰かがこれが機能しない理由を説明できますか?

0 投票する
1 に答える
218 参照

ruby - mkmf.rb を使用する場合の Linux 上のソースからビルドされた Ruby 1.9.2 の問題

Ruby 1.9.2-p320 を Fedora 16 上にバニラの ./configure コマンドでビルドし、/usr/local にインストールしました

インクルードファイルは /usr/local/include/ruby-1.9.1 にあります

このプログラムは「いいえ」と言います:

rb_thread_blocking_region が存在するかどうかを確認するために conftest.c をビルドするコマンド ラインに、/usr/local/include/ruby-1.9.1 の下のさまざまなディレクトリへの -I パスが含まれていないため、ビルドが失敗するためだと思います。ただし、mkmf はカスタム ロガーを使用しており、一部のメソッドに $stderr.puts ステートメントを追加しようとすると、出力が表示されないか、必要があることを示すエラー メッセージが表示されるため、よくわかりません。開発ツールをインストールします。私は多くの開発ツールとRubyソースを備えたLinuxを使用していますが、誰かがtry_funcメソッドでヘッダー変数をダンプする方法を教えてくれれば役立つかもしれません.

奇妙なことに、RMagick を含む他のバイナリ gem を今までビルドするのに問題はありませんでしたが、rb_thread_blocking_region が存在しないと考えているため、mysql2 で立ち往生しているため、誤ったコードが生成されます。

もう少し掘り下げてみると、適切な -I オプションを指定してこのプログラムをコンパイルできるので、rb_thread_blocking_region は確実に存在します。

ああ、ここに問題があります、mkmf.log から:

私はそれを考えるべきでした.cryptとopensslライブラリはFedoraでは面倒でした。

0 投票する
1 に答える
875 参照

ruby - gem のインストール時に libstdc++ が見つからない id3lib-ruby

id3lib-ruby をインストールしようとしていますが、次のエラーが発生します。

すべての種類の libstdc++ がインストールされています。

mkmf.log は次のとおりです。

私が間違っていること、またはそれを修正する方法について何か考えはありますか?

0 投票する
1 に答える
61 参照

ruby - gem ネイティブ拡張 ( em-irc ) のビルドに失敗しました

em-irc をインストールしようとすると、次のようになりました。

0 投票する
5 に答える
6415 参照

ruby-on-rails - gem のインストール中にエラーが発生し、gem ネイティブ拡張機能のビルドに失敗しました -- そのようなファイルを読み込めません -- mkmf

RoR は素晴らしいですが、頭を壁にぶつけたくなることがあります (とにかく、それはおそらく私のせいです)。Thin単純にweb-client gemをインストールしようとしているのですが、実行するsudo gem install thinと次のエラーが表示されます (最初に eventmachine gem をインストールする必要があります)。

「そのようなファイルをロードできません -- mkmf」エラーを検索しましたが、ほとんどの問題は、1.8-dev では使用できたが 1.8 では使用できなかったという事実に関連しているようですが、1.9.3 を実行しているため、 mkmfがありました-これを確認しましたlocate mkmf

mkmf が配置されているディレクトリは、明らかに /usr/lib/ruby/... ディレクトリの下ではありません。これが私の問題かどうかはわかりませんが、専門家の 1 人を次のようにジャンプスタートさせるには十分かもしれません。何が起こっているのか、解決策は何か。

また、RVM を使用して、単なるインストールではなく Ruby 1.9.3 をインストールしましたgem install

前もって感謝します!

0 投票する
2 に答える
335 参照

c - テスト関数に引数が必要な場合の have_func の正しい使い方は?

extconf.rb次の行があります。

だから、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行目です。

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

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

0 投票する
1 に答える
327 参照

c++ - extconf.rb: ヘッダー ファイルの変更に応じて makefile ターゲットを生成するにはどうすればよいですか?

私のextconf.rb中で、私は持っています

これらのそれぞれは、複数のヘッダー ファイルに依存しています。Itouch foo.cppまたはtouch bar.cppの後に do を実行rake compileすると、適切なオブジェクト ファイルが再コンパイルされます。

しかし、ファイルに触れて.hも、明らかに同じ効果はありません。extconf.rbこれが C/C++ の使用による症状なのか、C/C++ でのコーディングの事実なのか思い出せません。

extconf.rbこれらのヘッダー ファイルを認識するメイクファイルを作成するように指示できる方法はありますか?

0 投票する
1 に答える
314 参照

ruby - MKMF でメイクファイルを作成する

MKMF で洗練された Makefile を作成するにはどうすればよいですか? ターゲットを指定し、他のメイクファイルをインクルードし、マクロを指定する必要があります。それは可能ですか?私は MKMF にかなり慣れていないので、Web 上で MKMF を使用する方法の非常に基本的な例しか見つかりません。

たとえば、Makefile の先頭に次の行が必要です。

0 投票する
0 に答える
61 参照

c - MakeMakefile がヘッダーを見つけられない

Ruby Gem の C 拡張機能を作成しています。しかし、 #find_header の動作は非常に奇妙です。

$ rake compilerake-compiler が提供する実行によって得られたものは次のとおりです。

ヘッダーが欠落していることを示していますが、実際にはそうではありません。

なにが問題ですか?