LoginSignup
0
0

SDL2の環境構築とサンプルの実行【MacOS】【Homebrew】【VSCode】

Posted at

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

ウィンドウが画面に表示されれば成功です。
show_window.png

Makefileでコンパイルコマンドの省略

コンパイルのたびに、毎回g++~と打っていては大変なので、makeコマンドでコンパイルから実行までできるようにします。

makefileという名前のファイルを作成します。

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の方が使い勝手が良いと思っているので、こちらで開発を進めます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0