プログラミングに関する私的メモ

LMMS

最終更新:

gen3

- view
だれでも歓迎! 編集

LMMS

Linux MultimMedia Studio (LMMS) は Windows 用バイナリも配布されていますが、日本語版 Windows で使うには、日本語のパスが使えないとかパス区切り文字の扱いがおかしいとか、ほんのちょっと不便なところがあります。で、自分でコンパイルしてみようとしたのですが、Windows の MinGW で必要なライブラリを準備する時点で四苦八苦中。

LMMSをWindows上でコンパイルする

 参考-公式のコンパイル方法のページ
上記公式ページにも書かれているが、Windows上でLMMSをコンパイルするために、まずパッケージ間の依存性を解決しなければならない。これが意外と難しく公式にも詳細がない。以下メモ。

準備

Qtの開発環境を導入する

これだけでもプログラムを作って遊べます。

MinGW環境を導入する

Gitを導入する

GitはLMMSで採用してるバージョン管理システム。

LMMSソースコードを取得する

Readme等読みながら、必要となるライブラリを以下導入。

LMMSに必要なライブラリを導入する

LMMSのconfigureで適切なモジュールが選択されるが、LMMSの配布物には含まれていないものがある。Windowsでは何が選択されるのかを調べて、Windows用に必要な物を別途導入しておかなければならない。

オーディオハードウェア関連

オーディオファイル形式関連

  • ogg/Vorvis
    • 参考公式ダウンロードページ から libogg 1.2.2 (libogg-1.2.2.tar.gz), libvorvis 1.3.2 (libvorbis-1.3.2.tar.gz), libflac 1.2.1 (flac-1.2.1.tar.gz) を選択
    • まず libogg をコンパイルしてから libvorbis をコンパイルしないとダメらしい。逆にするとmake checkでエラーになった。
    • libogg は configure, make, make install, make check 問題なくOK
    • libvorbis は configure, make, make install, make check 問題なくOK

不明

  • fftw3f
    • MinGWのライブラリから mingw32-fftw-3.2.2-1.zip を選択
    • 中を見ると bin, include, lib, share のフォルダがある。コンパイル済みらしいのでおのおのそのまま /usr/local 以下の該当個所へコピー。
    • 気になるのは'f'が付いてるのは浮動小数点ライブラリかも。'f'付いてないのはダメかもしれない。
  • fluidsynth
    • Wikiの解説ダウンロード先
    • configure すると、途中で「MIDI関係がまだ入ってないので使えないかも」みたいなエラーメッセージが流れた。以下が configure の最後の部分。
***************************************************************
The autotools build system is deprecated and might be removed
in a future version. Please use the CMake build system instead.
***************************************************************
Summary:
libsndfile:            yes (with ogg vorbis support)
D-Bus:                 no
PulseAudio:            no
JACK:                  no
ALSA:                  no
PortAudio:             yes
OSS:                   no
MidiShare:             no
CoreAudio:             no
CoreMIDI:              no
LADSPA support:        no
LASH support:          no
LADCCA support:        no
OS/2 DART support:     no
Audio to file driver:  yes
Readline:              no
Profiling:             no
Debug:                 no
Trap on FPE (debug):   no
Check FPE (debug):     no
***************************************************************
  • 内容不明のパッケージ
  • SDL

LMMSをコンパイルしてみる

まず、動くはずのバージョンをコンパイルしてWindows環境の整合性を確認する。

LMMSのソースを変更してコンパイルしてみる。

ここまでで、一応の目標達成。


Windowsの環境変数の設定

LMMSをコンパイルするのに、
  • Qt creatorを起動
  • ファイル/プロジェクトを開く..
  • LMMSのCMakeList.txtを開く
  • バイナリを展開するビルド先フォルダの指定
  • CMakeのビルドタイプ(MinGW環境)とパラメータを指定
  • CMake実行
という手順になる。
このCMake実行時には、
  • Qtに付属のMinGW環境のツールを使わなければならない
  • Qtに付属していない分は、非POSIX環境用(Windowsネイティブ、Win32とも表記されることがある)のMinGWのツールを使う。
  • LMMSにリンクするincludeファイルやLIBを環境変数等でCMakeに教えてやる必要がある
で、CMakeの実行時に与えられるパラメータのテキストボックスはとても小さいので、
PATHも含めて環境変数を別途指定してやる必要がある。
Qtには、内部でコンパイルする時はPATH環境変数をリセットしてQt組込みのMinGW環境を優先して使うようにするバッチファイルが付いている
C:\Qt\2010.05\bin\qtenv.bat
が、これを利用するようにはなっていない。でも2月にダウンロードしたQtでは確かこのバッチファイルを呼び出すようになっていた気がするけど、2011-03-02にダウンロードした分では環境変数がまったく設定されていない。Qt自身の付属ツールにすらパスが通ってない。

しかし、プロジェクトを最初に開くためにCMakeList.txtを読み込んでCMakeを実行する時の環境変数はWindowsに設定されているものがそのまま使われるので、普通にMinGW/MSYSのツールをPATHに設定しておいてもよい。また依存パッケージのインストールされているMinGW/MSYSのライブラリやインクルードファイルも環境変数で指定できる。

環境変数 説明
CPLUS_INCLUDE %CPLUS_INCLUDE%;C:\MinGW\msys\1.0\local\include C++用ヘッダファイル
C_INCLUDE_PATH %C_INCLUDE_PATH%;C:\MinGW\msys\1.0\local\include C用ヘッダファイル
INCLUDE_PATH %INCLUDE_PATH%;C:\MinGW\msys\1.0\local\include その他ヘッダファイル
LD_LIBRARY_PATH %LD_LIBRARY_PATH%;C:\MinGW\msys\1.0\local\lib リンク時に参照されるライブラリ
LD_RUN_PATH %LD_RUN_PATH%;C:\MinGW\msys\1.0\local\lib ライブラリ
LIBRARY_PATH %LIBRARY_PATH%;C:\MinGW\msys\1.0\local\lib ライブラリ

これらをCMake起動用バッチファイルにしてもよい。

MinGW環境でpkg-configをインストールするための情報については
はてなでこんなページがあった
のでありがたく参考にさせていただく。

依存関係の解決

公式の情報

  • Qtは少なくとも4.3のlibと開発環境、4.4以上が速いのでお勧め、4.5でGUIがとても速くなってお勧め、とある。Nokiaから2010-03-03時点でダウンロードできるのは qt-sdk-win-opensource-2010.05.exe で、4.7以上の開発環境であり、これはクリア。
  • パソコンのオーディオハードウェアに対応するライブラリが必要。LinuxならALSAがお勧めとあるが、Windows用のコンパイルなのでWMMEをつかう。

実際の手順

以下の順
  • gettext (今回入れたMinGWには日本語化されたv0.17が付属していた)
  • glib ()
  • pkg-config
いずれもSourceForge.jpのMinGWのアーカイブからダウンロード可能。ていうか、ここまとまってていいな。古いかもしれないけど。

タグ:

LMMS MinGW Qt
+ タグ編集
  • タグ:
  • LMMS
  • MinGW
  • Qt

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

目安箱バナー