안녕하세요.. 질문만 올리네요..-_-;;
libsdl.org의 예제를 보고 SDL 공부를 좀 하고 있습니다.
-lSDL_image 옵션 및 -lSDL_ttf 옵션을 필요로 하는 예제들은 잘 컴파일이 되네요
즉 image load와 ttf 폰트는 잘 사용이 됩니다..
but 한글은 어찌해나 나오나요???
그런데 sound play 예제를 돌리기 위해 -lSDL_mixer 옵션을 주고 컴파일 했는데
오류가 납니다.. undefined reference 인데.. 컴파일러는 이솝사이트의
gcc-3.3.4-glibc-2.3.3 for ARM9 을 사용하고 있습니다.
조언을 주시면 대단히 감사하겠습니다.
bash-3.00# arm-linux-g++ -o lesson11 lesson11.cpp `cross-sdl-config --cflags`
> -lSDL -lSDL_image -lSDL_ttf -lSDL_mixer `cross-sdl-config --libs` -lz
> -ljpeg -lpng -lfreetype -lpthread
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x17c): In function `music_mixer':
/SDL/1.2.11/SDL_mixer-1.2.6/music.c:232: undefined reference to `VC_WriteBytes'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x308):/SDL/1.2.11/SDL_mixer-1.2.6/music.c:277: undefined ref erence to `VC_WriteBytes'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x46c): In function `open_music':
/SDL/1.2.11/SDL_mixer-1.2.6/music.c:393: undefined reference to `MikMod_InfoDriv er'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x478):/SDL/1.2.11/SDL_mixer-1.2.6/music.c:397: undefined ref erence to `MikMod_InfoLoader'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x488):/SDL/1.2.11/SDL_mixer-1.2.6/music.c:400: undefined ref erence to `MikMod_Init'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x540):/SDL/1.2.11/SDL_mixer-1.2.6/music.c:401: undefined ref erence to `MikMod_strerror'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x554):/SDL/1.2.11/SDL_mixer-1.2.6/music.c:399: undefined ref erence to `MikMod_RegisterAllLoaders'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x55c):/SDL/1.2.11/SDL_mixer-1.2.6/music.c:395: undefined ref erence to `MikMod_RegisterAllDrivers'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x5ec):/SDL/1.2.11/SDL_mixer-1.2.6/music.c:366: undefined ref erence to `md_mode'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x5f8):/SDL/1.2.11/SDL_mixer-1.2.6/music.c:366: undefined ref erence to `md_mixfreq'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x5fc):/SDL/1.2.11/SDL_mixer-1.2.6/music.c:366: undefined ref erence to `md_volume'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x600):/SDL/1.2.11/SDL_mixer-1.2.6/music.c:366: undefined ref erence to `md_pansep'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x604):/SDL/1.2.11/SDL_mixer-1.2.6/music.c:366: undefined ref erence to `md_reverb'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x608):/SDL/1.2.11/SDL_mixer-1.2.6/music.c:366: undefined ref erence to `md_device'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x60c):/SDL/1.2.11/SDL_mixer-1.2.6/music.c:366: undefined ref erence to `md_musicvolume'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x610):/SDL/1.2.11/SDL_mixer-1.2.6/music.c:366: undefined ref erence to `md_sndfxvolume'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x628):/SDL/1.2.11/SDL_mixer-1.2.6/music.c:366: undefined ref erence to `MikMod_errno'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x900): In function `Mix_LoadMUS':
/SDL/1.2.11/SDL_mixer-1.2.6/music.c:580: undefined reference to `Player_Load'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x940):/SDL/1.2.11/SDL_mixer-1.2.6/music.c:582: undefined ref erence to `MikMod_strerror'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x9c0):/SDL/1.2.11/SDL_mixer-1.2.6/music.c:477: undefined ref erence to `MikMod_errno'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0xa38): In function `Mix_FreeMusic':
/SDL/1.2.11/SDL_mixer-1.2.6/music.c:639: undefined reference to `Player_Free'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0xbc8): In function `music_internal_play':
/SDL/1.2.11/SDL_mixer-1.2.6/music.c:724: undefined reference to `Player_Start'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0xd8c): In function `music_internal_position':
/SDL/1.2.11/SDL_mixer-1.2.6/music.c:830: undefined reference to `Player_SetPosit ion'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0xe64): In function `music_internal_volume':
/SDL/1.2.11/SDL_mixer-1.2.6/music.c:900: undefined reference to `Player_SetVolum e'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0xf30): In function `music_internal_halt':
/SDL/1.2.11/SDL_mixer-1.2.6/music.c:968: undefined reference to `Player_Stop'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x10e4): In function `music_internal_playing':
/SDL/1.2.11/SDL_mixer-1.2.6/music.c:1085: undefined reference to `Player_Active'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x1254): In function `Mix_SetSynchroValue':
/SDL/1.2.11/SDL_mixer-1.2.6/music.c:1177: undefined reference to `Player_Active'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x12c0): In function `Mix_GetSynchroValue':
/SDL/1.2.11/SDL_mixer-1.2.6/music.c:1199: undefined reference to `Player_Active'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x12f8): In function `close_music':
/SDL/1.2.11/SDL_mixer-1.2.6/music.c:1223: undefined reference to `MikMod_Exit'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x1478): In function `MikMod_LoadSongRW':
/SDL/1.2.11/SDL_mixer-1.2.6/music.c:1297: undefined reference to `Player_LoadGen eric'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x1568): In function `Mix_LoadMUS_RW':
/SDL/1.2.11/SDL_mixer-1.2.6/music.c:1342: undefined reference to `MikMod_strerro r'
/korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/arm-linux/lib/libSDL_mixe r.a(music.o)(.text+0x15a0):/SDL/1.2.11/SDL_mixer-1.2.6/music.c:1314: undefined r eference to `MikMod_errno'
collect2: ld returned 1 exit status
bash-3.00#
bash-3.00#
빼서 컴파일 해보세요. SDL_mixer는 mikmod library를 필요로 하기 때문에 이런 문제가 발생하는 것입니다.
한글을 사용하려면 예전에 이제현님이 pds에 올려놓은 자료가 있을겁니다. 그것을 참조하시면 됩니다.
간단하게 말씀드리면 코드체계를 변환한 후 ttf에서 한글을 추출해서 뿌려주면 됩니다.