C拡張を含む宝石を書いています。通常、gem を作成するときは、TDD のプロセスに従います。このプロセスでは、失敗した仕様を作成し、合格するまでコードに取り組みます。
「ext/mygem/mygem.c」に C 拡張機能があり、有効な extconf.rb が gemspec の「拡張機能」に構成されている場合、C 拡張機能をロードしたままスペックを実行するにはどうすればよいですか? C コードを変更した場合、コードを再コンパイルするにはどのような手順を実行する必要がありますか?
これはおそらくばかげた質問ですが、gem の開発ソース ツリー内から 'bundle install' と入力しても、ネイティブ エクステンションはビルドされません。手動で実行するruby ext/mygem/extconf.rb
と (プロジェクト全体のルートに) Makefile が取得され、次に実行するとmake
(プロジェクト全体のルートに) 共有オブジェクトが取得されます。.so は lib/. 開発中に手作業でそれを行うことになっている場合を除きますか?