私はRiceを使用してRubygemのC++拡張機能を作成しています。拡張子は共有オブジェクト(.so)ファイルの形式です。
これには、「mkmf」ではなく「mkmf-rice」が必要ですが、2つ(AFAIK)は非常に似ています。
デフォルトでは、コンパイラはフラグを使用します-g -O2
。個人的には、最適化を有効にしてデバッグするのは難しいので、この種のばかげていると思います。Makefileを編集して、気に入らないフラグを削除しました(たとえば、Rubyのフックの代わりに-fPIC -shared
デバッグが必要な場合は削除します)。main()
しかし、もっと良い方法が必要だと思います。私はただできることを知っています
$CPPFLAGS += " -DRICE"
追加のフラグを追加します。しかし、Makefileを直接編集せずに物を削除するにはどうすればよいですか?
二次的な質問:Rubyによってロードされた共有オブジェクトに対してどの最適化が安全ですか?私はそのようなことをすることができます-funroll-loops
か?皆さんは何をお勧めしますか?
これは科学計算プロジェクトなので、速いほど良いです。メモリはそれほど問題ではありません。