問題タブ [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.
c - mkmfは、C拡張子をコンパイルするときに、サブフォルダー内のファイルを無視します
Cのソースコードを次のように整理したいと思います。
この設定をで正しく機能させるのに問題がありますmkmf
。native_extension/lib
に含まれているのファイルはnative_extension.c
完全に無視されています。
拡張機能をビルドすると、コンパイルされるだけで、実行しようとするとシンボルルックアップエラーが発生native_extension.{h,c}
する不完全なメッセージが表示されます。native_extension.{so,dll}
これを機能させる方法はありますか?
ruby - ルビーのmkmfで外部cライブラリにリンクする方法は?
このディレクトリには次のファイルがあります。
irbで次のようにして、上記のライブラリが存在するかどうかをrubygemに判断させようとしています。
誰かがこれが機能しない理由を説明できますか?
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では面倒でした。
ruby - gem のインストール時に libstdc++ が見つからない id3lib-ruby
id3lib-ruby をインストールしようとしていますが、次のエラーが発生します。
すべての種類の libstdc++ がインストールされています。
mkmf.log は次のとおりです。
私が間違っていること、またはそれを修正する方法について何か考えはありますか?
ruby - gem ネイティブ拡張 ( em-irc ) のビルドに失敗しました
em-irc をインストールしようとすると、次のようになりました。
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
。
前もって感謝します!
c - テスト関数に引数が必要な場合の have_func の正しい使い方は?
extconf.rb
次の行があります。
だから、cblas_dgemm
間違いなく入っていcblas.h
ます。mkmf.logを見ると、このチェックが実際に 2 つのことを調べていることがわかります。
_cblas_dgemm
どこかの記号(?)cblas_dgemm
の呼び出し可能オブジェクトcblas.h
。
どちらのテストも失敗しています。dir_config
の行が必要なためcblas
、前者は失敗していると思いますhave_library('cblas')
。
しかし、後者のテストをパスさせる方法がわかりません ( gistの 24 行目を参照)。ブロックを渡して、have_func
実際に妥当な引数で呼び出すことはできますか? または、このテストを実行する他の方法はありますか? それとも、dir_config
適切にセットアップする必要がありますか?
ちなみに24行目です。
もちろん、cblas_dgemm
多くの引数が必要です。その一部は行列です。
これらの機能に関するドキュメントがほとんどないことは、イライラさせられmkmf
ます。
c++ - extconf.rb: ヘッダー ファイルの変更に応じて makefile ターゲットを生成するにはどうすればよいですか?
私のextconf.rb
中で、私は持っています
これらのそれぞれは、複数のヘッダー ファイルに依存しています。Itouch foo.cpp
またはtouch bar.cpp
の後に do を実行rake compile
すると、適切なオブジェクト ファイルが再コンパイルされます。
しかし、ファイルに触れて.h
も、明らかに同じ効果はありません。extconf.rb
これが C/C++ の使用による症状なのか、C/C++ でのコーディングの事実なのか思い出せません。
extconf.rb
これらのヘッダー ファイルを認識するメイクファイルを作成するように指示できる方法はありますか?
ruby - MKMF でメイクファイルを作成する
MKMF で洗練された Makefile を作成するにはどうすればよいですか? ターゲットを指定し、他のメイクファイルをインクルードし、マクロを指定する必要があります。それは可能ですか?私は MKMF にかなり慣れていないので、Web 上で MKMF を使用する方法の非常に基本的な例しか見つかりません。
たとえば、Makefile の先頭に次の行が必要です。