ruby から呼び出したいコードを c で作成しました。この記事をガイドとして使用しましたが、問題をリンクせずに実行するのに問題があります。
まず、ソース ファイルを自分のext/NAME/
ディレクトリに直接コピーする必要があります。それらをそのディレクトリにサブモジュール化した場合、それらはピックアップされないようです。つまり、のようなサブディレクトリの下にあるということext/NAME/CLIB_GIT_SUBMODULE_FILES/
です。
次に、c プロジェクトの makefile を実行する必要があるようです。そうしないと、segfault が発生します。makefileを実行する.o
と、ext/NAME
ディレクトリにオブジェクト ファイル (/test/
linking shared-object NAME/NAME.so
gcc: error: SOMEFILE_ONE.o: No such file or directory
gcc: error: SOMEFILE_TWO.o: No such file or directory
gcc: error: SOMEFILE_THREE.o: No such file or directory
make: *** [ruby_fast_numerizer.so] Error 1
rake aborted!
その下でmakefileを実行すると、などext/NAME/
が作成されることに注意してください。SOMEFILE_ONE.o
この時点で何が起こっているのかわかりません:(ガイドはすべてext/NAME
、既存のcライブラリをラップするのではなく、ディレクトリに新しいcコードを書いているようです。nokogiriのようなガイダンスのために他のプロジェクトを見てみましたが、彼らはやっていますはるかに多く、ふるいにかけるのが難しくなります。
どんな助けでも大歓迎です!