SDLはGNU libcとカーネルバージョン2.6以上が認識する全てのハードウェアに対応している.
最新の情報はインストールを参照すること.
SDL 1.2ならば"sdl-config --cflags --libs", SDL 2.0ならば"sdl2-config --cflags --libs"の出力を, 例えば gcc -o test test.c `sdl-config --cflags --libs` のように追加すればよい.
もしプロジェクトのMakefileを自分で書くならば, 次の行をMakefileに追加すると正しいCFLAGSとLDFLAGSが得られる.
SDL_CFLAGS := $(shell sdl-config --cflags)
SDL_LDFLAGS := $(shell sdl-config --libs)
プロジェクトでautoconfやautomakeを使うならば, sdl.m4 (sdl2.m4)を内容をコピーしてあなたのacinclude.m4ファイルに追加し, 次の内容をあなたのconfigure.inファイルに追加するとよい. (SDL 1.2用)
dnl Check for SDL
SDL_VERSION=1.2.0
AM_PATH_SDL($SDL_VERSION,
:,
AC_MSG_ERROR([*** SDL version $SDL_VERSION not found!])
)
CFLAGS="$CFLAGS $SDL_CFLAGS"
LIBS="$LIBS $SDL_LIBS"
SDL 2.0の場合は, AM_PATH_SDLはAM_PATH_SDL2となり, SDL_VERSIONも適切に設定する必要がある.
/etc/ld.so.confを編集し, 次の行があるか確認する:
/usr/local/lib
rootで/sbin/ldconfigを実行する.
/usr/local/bin に実行パスが通っているか確認する:
export PATH=$PATH:/usr/local/bin/
システムに別のバージョンのSDLがないことを確認する. そしてディレクトリからソフトウェアのビルドを阻害する"config.cache"ファイルを全て削除する.
上記の全てを行ってもできない場合は, ビルドできないソフトのあるディレクトリで以下のコマンドを実行した出力結果をSDLメーリングリストに送って欲しい.
環境変数の設定方法はログインしたシェルで異なる:
Bourne shell派生の場合: (sh, ash, ksh, zsh, bashなど)
VARIABLE='value'; export VARIABLE
C shell派生の場合: (csh, tcshなど)
setenv VARIABLE 'value'
SDLがXディスプレイを開けなかった場合, SDLはそのX11ビデオドライバを使わない. そして他の使えるドライバがなければ, このエラーが報告される. これを修復するためには, ディスプレイの環境変数を適切に設定する:
sh:
DISPLAY=:0 ; export DISPLAY
csh:
setenv DISPLAY :0
それでも解決しないならば, 最後に xhost + localhost を実行する. これら全てを行っても解決しなければ, SDLをソースからビルドする. X11開発ライブラリがあることを確認すること. そうしなければX11に対応しないSDLになってしまう. X11開発ライブラリをインストールしたならば, "make clean"を実行した後configureとビルドを実行する.
SDLのビルド: make distclean; ./configure --enable-video-aalib ; make install
アプリケーションの実行: 環境変数SDL_VIDEODRIVERに"aalib"を設定する
Xが必要な解像度に切り替えられる必要がある. この場合, モニタがその解像度に対応していなければならない. そしてその解像度がXサーバ設定ファイルに記述されている必要がある.
以下はXFree86 4.0.1の例だが, 3.3.xもこれと似ている. もしあなたのモニタがこれらのビデオモードに対応していないならば, Xサーバは有効なビデオモードの一覧からそれを除外するので注意すること. 例:
Section "Screen"
Identifier "Screen 1"
Device "3dfx"
Monitor "Samsung LCD"
DefaultDepth 16
Subsection "Display"
Depth 8
Modes "1280x1024" "1024x768" "800x600" "640x480" "320x240"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 16
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
EndSection
深度8bitと16bitでは設定が違うことに注意すること. 320x240はXが深度16bitで起動した場合(デフォルト)には*無効*である.
これらの設定を試すならば, XF86Configを編集した後にXを再起動し, CTRL ALT + と CTRL ALT - を押してこれらの解像度に設定する. -- Andreas Umbachによる追記
FedoraにSDL 2.0をビルドするためにはこれらのパッケージをインストールする必要がある.
sudo yum install rpm-build alsa-lib-devel libX11-devel libXScrnSaver-devel libXau-devel libXcursor-devel libXext-devel libXfixes-devel libXi-devel libXinerama-devel libXrandr-devel libXrender-devel libXxf86vm-devel mesa-libGL-devel pulseaudio-libs-devel
次のコマンドを実行する: sudo apt-get build-dep libsdl1.2
個別に依存を得ることもできる:
sudo apt-get install build-essential mercurial make autoconf automake libtool libasound2-dev libpulse-dev libaudio-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev libxxf86vm-dev libxss-dev libgl1-mesa-dev libesd0-dev