Nanashi-soft○プログラマ専用○Windows
gcc SDL○
◇Windowsでgcc+SDL -EclipseでSDL-
ふと思いました
内臓コンパイラとかでは無く別途インストールした gccでコンパイルしているので SDLもそのまま動くんじゃないのかな?('-'*)
まずは Windows版で試してみる
#include "SDL.h"
を追加すると……
../src/test2.cpp:9:17: SDL.h: No such file or directory
SDLのインクルードファイルの場所がわかっていないようなので、教えたげる
メニューのProject→Properties
左のC/C++ Buld→Settings
Tool Settingsタブを開いて、Cygwin C++ Compiler→Direntories
右上の+の付いたアイコンをクリックして『C:\cygwin\usr\local\include\SDL』を追加
SDL初期化処理を入れてみる
//初期化
if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_JOYSTICK|SDL_INIT_AUDIO) < 0){
return -1;
}
すると……
src/test2.d:1: *** multiple target patterns. Stop.
が出力された
これが一度出ると、ソースを元に戻しても出るので、ツールのバグなんだろう(泣
仕方がないので、一度プロジェクトを削除して再作成してみる
そうすると、再度ビルド可能になった
コマンドラインで SDLをコンパイルする時のオプションを Eclipseに設定してみる
gcc -o karuna karuna.c `sdl-config --cflags --libs`
こうなので、コンパイラとリンカに以下のオプションを追加する
メニューのProject→Properties
左の C/C++ Buld→Settings
Tool Settingsタブを開いて、Cygwin C++ Compiler→Miscellaneous
Other flagsに「 `sdl-config --cflags`」を追記(スペース区切りね)
次に、Cygwin C++ Linker→Miscellaneous
Linker flagsに「`sdl-config --libs`」を追記
OKボタンで設定完了
ビルドしてみると、以下のエラーが出た
/cygdrive/c/a/test2/Debug/../src/test2.cpp:17: undefined reference to `_SDL_SetVideoMode'
/cygdrive/c/a/test2/Debug/../src/test2.cpp:22: undefined reference to `_SDL_PollEvent'
どうやらライブラリが見つからないようなので、ライブラリパスを追加する
メニューのProject→Properties
左の C/C++ Buld→Settings
Cygwin C++ Linker→Libraries
Library search pathに「C:\cygwin\usr\local\bin」を追加
ビルドしてみると、保護違反発生!orz
問題の詳細の表示を見てみると、障害モジュールの名前が SDL.dllになっていた
起動時になにかおかしな DLLを読み込んでしまっているようなので(古いバージョンのとか?)プロジェクトフォルダに正しい SDL.dll放り込んでみる
そうしてビルドしてみると、起動した(^_^)
○TOP○プログラマ専用○Windows
gcc SDL○