Homebrewでsdl2をmacOSにinstall後、サンプルコードの実行まで行います。
実行環境
- macOS Ventuna 13.5.1
- SDL 2.30.2
- Homebrew 4.2.17
- g++ Apple clang version 14.0.3
HomebrewからSDL2をインストール
search欄にsdl2を入力してクリック
install commandとして
$ brew install sdl2
が出るのでコマンドラインで実行
sld2関連の他のライブラリを入れたい場合は
$ brew install sdl2 sdl2_image sdl2_ttf sdl2_mixer sdl2_gfx sdl2_net
コマンドラインから実行するためのオプションを調べる
installしたsdl2は /usr/local/Cellar/sdl2
にあるようです。
$ cd /usr/local/Cellar/sdl2/2.30.2/bin
でディレクトリへ移動 (2.30.2の箇所はバージョンによって異なる)
$ ./sdl2-config
を実行することで、コンパイルオプションを調べられます。
$ ./sdl2-config
Usage: ./sdl2-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--cflags] [--libs] [--static-libs]
今回は、sdl2ライブラリをリンクするためのコンパイルオプションが知りたいので、以下を実行
$ ./sdl2-config --cflags --libs
-I/usr/local/Cellar/sdl2/2.30.2/include/SDL2 -D_THREAD_SAFE
-L/usr/local/Cellar/sdl2/2.30.2/lib -lSDL2
これら2つのオプションをつけてあげれば良さそうです。
サンプルコードの実行
Windowを表示する記事のコードを参考に、VSCodeでサンプルコードのcppファイルを作成し、サンプルコードを実行します。
$ g++ hoge.cpp -I/usr/local/Cellar/sdl2/2.30.2/include/SDL2 -D_THREAD_SAFE -L/usr/local/Cellar/sdl2/2.30.2/lib -lSDL2
Makefileでコンパイルコマンドの省略
コンパイルのたびに、毎回g++~
と打っていては大変なので、makeコマンドでコンパイルから実行までできるようにします。
makefileという名前のファイルを作成します。
# コンパイル対象のソースコード
arg = main.cpp
# 前回の実行ファイルを消去してから、新しくコンパイル、実行を行う
all: clean compile exec
compile:
g++ $(arg) -I/usr/local/include/SDL2 -D_THREAD_SAFE -L/usr/local/Cellar/sdl2/2.30.2/lib -lSDL2
exec:
./a.out
clean:
-rm ./a.out
以下のコードでコンパイルから実行までを行ってくれます。
(デフォルトのcppのファイル名がmain.cppなのに注意)
$ make
任意のファイルをコンパイルしたいときは以下のように引数を指定してあげるといいです。
$ make arg=hoge.cpp
参考記事
web帳 | Mac Home brewでSDL2.0を簡単に環境設定
備考
この動画を参考にXCodeでも動くように設定を試みましたが、
Library not loaded: /usr/local/opt/sdl2/lib/libSDL2-2.0.0.dylib
というエラーが消えないため、仕方なくVSCodeでの環境構築をしました。
また、Homebrew以外のインストール方法として、公式ドキュメントや個人のブログ記事を参考に、GitHubから落としたデータをbuildしましたが、/usr/local/Cellar/sdl2/2.30.2
のところにあるはずのデータが上手く生成されませんでした...謎。
個人的にはXCodeよりもVSCodeの方が使い勝手が良いと思っているので、こちらで開発を進めます。