VScode MSYS2 openFrameworks 0.11.2 あるいは nightly build v20220622 インストール

openFrameworksのインストールに苦労したのでメモを書きました。

Visual Studio使えばインストールは簡単そうなんだけど、Visual Studioがデカくて嫌なのでVSCodeとMSYS2でやってみることにした。

openFrameworksの日本語ページには古い手順が載っていて、これに従っても上手くインストールできない。

https://teratail.com/questions/259158

openFrameworksの英語ページの案内に従ってインストールする。

https://openframeworks.cc/setup/msys2/

大雑把に日本語にしたけど、元のページ見たほうが良いと思う。

VScodeのインストール

案内には載ってないけどVSCodeを使いたいのでインストールしておく。

VSCodeのDLページからダウンロードしてインストールする。

https://azure.microsoft.com/ja-jp/products/visual-studio-code/

MSYS2のインストール

インストーラをダウンロードしてインストールする。

https://www.msys2.org/

インストールしたら msys2.exe を起動して、

$ pacman -Syu --noconfirm --needed

でMSYS2を更新する。

更新できたら一旦終了する。

openFrameworksのインストール

どうしてもoFライブラリをコンパイルする段階で失敗するので、フォーラムで質問してみたらナイトリービルドを試すように回答を頂いたので、ダウンロードページの下の方にある of_v20220622_msys2_mingw64_nightly.zip をダウンロードして依存関係のインストールからやり直した。

ガイドにサンプルのコンパイル例として使われている 3DPrimitivesExample はコンパイルに失敗するが、ほかのサンプルはコンパイルできた。実行も問題なくできているみたい。

MSYS2用のzipファイルをダウンロードする。

https://openframeworks.cc/ja/download/

32bit版と64bit版があるので、以降の手順で32bit版を使う場合はMSYS2も mingw32.exe を使う。64bit版ならmingw64.exe。

ダウンロードしたzipを適当な場所に展開する。このときパスに日本語やスペースが含まれるとダメらしい。私は以下のような感じにしました。

/c/openFrameworks/of_v0.11.2_msys2_mingw64_release/zipの中身

依存関係をインストールする

ダウンロードしたzipに合わせて mingw64.exe か mingw32.exe を起動する。

$ cd ~/scripts/msys2

ディレクトリを移動したら、

$ ./install_dependencies.sh

で依存関係のインストールが始まる。

Proceed with installation? [Y/n] を何回も表示してくるから、全部 y で答える。 インストールするパッケージが多くて時間が掛かる。不安になるけど辛抱。

oFライブラリをコンパイルする

$ cd ~/libs/openFrameworksCompiled/project

でライブラリのディレクトリに移動して、

$ make

コンパイルできる。

$ make -j4 とか $ make -j8 のようにするとマルチスレッドでコンパイルしてくれるので早いらしい。

正しく完了すると

Done

と表示される。

パスを通す

コマンドプロンプトを起動して以下のように入力する。

setx PATH "c:\msys64\mingw32\bin;c:\msys64\usr\bin;%PATH%"

mingw64を使っている場合はmingw32のところをmingw64にする。

サンプルをコンパイルしてみる

3DPrimitivesExample の場合は、

$ cd ~/examples/3d/3DPrimitivesExample

でサンプルのディレクトリに移動したら、

$ make

コンパイルできる。

$ make run

で実行できる。

実行ファイルは

~/examples/3d/3DPrimitivesExample/bin/

に生成される。

パスが通っていれば実行ファイルをダブルクリックすれば必要なdllを自動で見つけてきて実行できる。

$ make copy_dlls

で必要なdllをアプリケーションフォルダにコピーしてくれる。パスを通してない場合はこれで実行できる。

VSCodeのターミナルのMSYS2を追加する

VSCodeを起動したら、Ctrl + Shift + P でコマンドパレットを開く。

コマンドパレットに settings.json と入力する。

基本設定(設定)jsonを開くを選択する。

settings.jsonが開くので、一番下とか適当なところに以下を書き足して保存する。

"terminal.integrated.profiles.windows": {
    "MSYS2 Bash": {
      "path": [
        "C:\\msys64\\usr\\bin\\bash.exe"
      ],
      "args": [
        "--login"
      ],
      "env": {
        "MSYSTEM": "MINGW64",
        "CHERE_INVOKING": "1"
      }
    }
  }

保存できたら、ターミナルの右上にあるプルダウンメニューからMSYS2が選択できるようになってるはず。