Cross compiling a program with PortAudio for Windows by MinGW on Linux
最近は VirtualBox 上の ubuntu で開発することで Windows の呪縛から解き放たれていたんですが(まあ Windows がホストOSではありますけど)、どうもマイク入力が VirtualBox ではサポートされていない様子。USB マイクなら大丈夫とか聞くんですが。
開発環境は他のプログラムとも合わせて Linux にしておきたいので、プログラムを Windows 向けにクロスコンパイルしようと思い立ちました。
環境や使用した(された)バージョンは以下です:
- Microsoft Windows 8 [Version 6.2.9200]
- VirtualBox 4.2.12
- ubuntu 12.04 LTS
- Microsoft Visual Studio Professional 2012 [Version 11.0.50727.1]
- PortAudio V19 (2011-11-21)
- MingGW 4.2.1
PortAudio のコンパイル
公式のチュートリアル(http://portaudio.com/docs/v19-doxydocs/compile_windows.html)に従えば大体大丈夫でしょう。
preprocessor definitions の設定は以下のようにしました:
PA_USE_ASIO=1 PA_USE_DS=1 PA_USE_WMME=1 PA_USE_WASAP=1 PA_USE_WDMKS=1 PA_USE_SKELETON=1 PA_WDMKS_NO_KSGUID_LIB
最後のは「エラー 38 error LNK1104: ファイル 'ksguid.lib' を開くことができません。」なるエラーを回避する為です(http://music.columbia.edu/pipermail/portaudio/2011-August/012848.html)。
これで運が良ければ Win32/Release や、構成マネージャを弄れば x64/Release にライブラリファイルが生成されているでしょう。