langscan/java/java.so
コンパイラはVisual C++ 6.0。mingwのgccでもいいらしいけど、俺VC++持ってるし。
- プロジェクトの設定の「設定の対象」を「Win32 Debug」以外にすること
- デバッグする気はないのでアクティブな構成はReleaseで
リンクするCランタイムとかではまりたくないし - 「出力ファイル」は「src\langscan\java」。って、これは俺だけか
- あとはC/C++
- プリプロセッサのシンボルに「YY_NO_UNISTD_H」を入れないと#include<unistd.h>で怒られる
- リンクに「msvcrt-ruby18.lib」を入れるのを忘れない
- あとVC自体のオプションでincludeとかlibとかのパスを設定しておく
- 昔はソースコードを書き換えて全部declspec(dllexport)とかしてたけど、defファイルという便利なものがあるらしい*1。これは駱駝、違った楽だ。
そういうわけで、
irb(main):001:0> require 'langscan/java' LoadError: no such file to load -- langscan/pairmatcher/pairmatcher from ./langscan/_pairmatcher.rb:13:in `require' from ./langscan/_pairmatcher.rb:13 from ./langscan/java.rb:14:in `require' from ./langscan/java.rb:14 from (irb):1:in `require' from (irb):1 irb(main):002:0>
次はpairmatcherか。