Kivy๋ ์๋ ๋์ด๋ ์ค๋ฅ์ ํจ๊ป ์ปดํ์ผ์ ์คํจํฉ๋๋ค. ๊ทธ ์ด์ ๋ SDL2_mixer
๋ฆด๋ฆฌ์ค 2.0.2, ํนํ MIX_INIT_MODPLUG
๋ฐ MIX_INIT_FLUIDSYNTH
์์ SDL_mixer.h
์์ ์ผ๋ถ ํ๋๊ทธ๊ฐ ์ ๊ฑฐ/์ด๋ฆ ๋ณ๊ฒฝ๋์๊ธฐ ๋๋ฌธ์
๋๋ค.
๋๋ ๊ธฐ๊บผ์ด ์์ ์ ์๋ํ ์ํฅ์ด ์์ง๋ง ์๋ง๋ ์ฐ๋ฆฌ๋ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ ์งํ๊ธฐ๋ฅผ ์ํ๋ฏ๋ก ํค๋์ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ ์ด๋ฌํ ํ๋๊ทธ๋ฅผ ๋ก์ปฌ๋ก ์ฌ์ ์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -march=armv8-a -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -march=armv8-a -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -march=armv8-a -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -Ikivy/include -I/usr/include/SDL2 -I/usr/local/include/SDL2 -I/usr/include/SDL2 -I/usr/include/SDL2 -I/usr/include/python3.6m -c kivy/core/audio/audio_sdl2.c -o build/temp.linux-aarch64-3.6/kivy/core/audio/audio_sdl2.o
kivy/core/audio/audio_sdl2.c: In function '__pyx_f_4kivy_4core_5audio_10audio_sdl2_mix_init':
kivy/core/audio/audio_sdl2.c:1647:63: error: 'MIX_INIT_MODPLUG' undeclared (first use in this function); did you mean 'MIX_INIT_MOD'?
__pyx_v_want_flags = (__pyx_v_want_flags | ((MIX_INIT_MOD | MIX_INIT_MODPLUG) | MIX_INIT_FLUIDSYNTH));
^~~~~~~~~~~~~~~~
MIX_INIT_MOD
kivy/core/audio/audio_sdl2.c:1647:63: note: each undeclared identifier is reported only once for each function it appears in
kivy/core/audio/audio_sdl2.c:1647:83: error: 'MIX_INIT_FLUIDSYNTH' undeclared (first use in this function); did you mean 'MIX_INIT_MID'?
__pyx_v_want_flags = (__pyx_v_want_flags | ((MIX_INIT_MOD | MIX_INIT_MODPLUG) | MIX_INIT_FLUIDSYNTH));
^~~~~~~~~~~~~~~~~~~
MIX_INIT_MID
kivy/core/audio/audio_sdl2.c: In function '__pyx_pf_4kivy_4core_5audio_10audio_sdl2_9MusicSDL2_extensions':
kivy/core/audio/audio_sdl2.c:4936:69: error: 'MIX_INIT_MODPLUG' undeclared (first use in this function); did you mean 'MIX_INIT_MOD'?
__pyx_t_2 = ((__pyx_v_4kivy_4core_5audio_10audio_sdl2_mix_flags & MIX_INIT_MODPLUG) != 0);
^~~~~~~~~~~~~~~~
MIX_INIT_MOD
error: command 'gcc' failed with exit status 1
์ด๊ฒ์ v2.0.2์์ SDL_mixer.h
์ ์๋ก์ด ์ ์์
๋๋ค.
typedef enum
{
MIX_INIT_FLAC = 0x00000001,
MIX_INIT_MOD = 0x00000002,
MIX_INIT_MP3 = 0x00000008,
MIX_INIT_OGG = 0x00000010,
MIX_INIT_MID = 0x00000020
} MIX_InitFlags;
๊ทธ๋ฆฌ๊ณ ๋น๊ต๋ฅผ ์ํ ์ด์ ๊ฒ:
typedef enum
{
MIX_INIT_FLAC = 0x00000001,
MIX_INIT_MOD = 0x00000002,
MIX_INIT_MODPLUG = 0x00000004,
MIX_INIT_MP3 = 0x00000008,
MIX_INIT_OGG = 0x00000010,
MIX_INIT_FLUIDSYNTH = 0x00000020
} MIX_InitFlags;
๋๋ ์๋ฌด๋ fluidsynth๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๊ณ 100% ํ์ ํฉ๋๋ค. ํจ์น๋ฅผ ์ง์ ์ ๊ณตํ๋ฉด ๋ณํฉํฉ๋๋ค.
์ ์ ์์๋ ์ด๋์ ์ ๋ ฅํฉ๋๊น? ์ ์ ํจ๊ป ๋ฒ ์ด์ฃผ์ธ์. ๋๋ ์ด๊ฒ์ ์ต์ํ์ง ์์ต๋๋ค.
๋๊ตฐ๊ฐ ์ฌ๊ธฐ์์ ์์ ์ ๊ท ์ด์ ๋ธ ๊ฒ ๊ฐ์ต๋๋ค: https://github.com/kivy/kivy/pull/5459
ArchLinux Kivy ํจํค์ง๋ ์ด๋ป๊ฒ๋ ์ด ์ปดํ์ผ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
python-kivy 1.10.0 ํจํค์ง๋ sdl2_mixer 2.0.2์ ์์กดํ๋ฉฐ ์ธ๊ธ๋ ํจ์น ์์ด ์๋ํฉ๋๋ค.
๋ค์์ ํฌํจํ๋ requirements.txt ํ์ผ์ ์ฌ์ฉํ์ฌ Python 3 ๊ฐ์ ํ๊ฒฝ์ Kivy๋ฅผ ์ค์นํ๋ ค๊ณ ํ์ต๋๋ค.
์ฌ์ด์ฌ==0.25.2
ํค๋น==1.10.0
๋์ผํ error: โMIX_INIT_MODPLUGโ undeclared (first use in this function); did you mean โMIX_INIT_MODโ?
์ค๋ฅ๋ก ์คํจํ์ต๋๋ค.
์ ์ฅ์์์ ํจํค์ง๋ฅผ ์ค์นํ ํ: sudo pacman -S python-kivy
๋ฐ Kivy๊ฐ ์ค์น๋ ์ ์ญ Python ์ค์น ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํฉ๋๋ค.
PYTHONPATH=/usr/lib/python3.6/site-packages/:/usr/local/lib/python3.6/site-packages/ python3 main.py
, Kivy ๋ชจ๋์ด ์ฑ๊ณต์ ์ผ๋ก ๋ก๋๋ฉ๋๋ค.
๊ทธ ํฅ๋ฏธ ๋กญ๊ตฐ์. ๋ถํํ๋ ๋๋ Raspberry Pi์์ Arch๋ฅผ ์คํํ๊ณ ์๊ณ ์ ์ฅ์์์ 1.10.0 ๋ฒ์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ฑ๋ฅ์ด ๋์ฐํ๊ธฐ ๋๋ฌธ์ ์ต์ ๋ง์คํฐ ๋ธ๋์น๋ฅผ ์ปดํ์ผํด์ผ ํฉ๋๋ค.
์ค์ ๋ก makepkg -s && makepkg --skipinteg
๋ฅผ ํตํด master ๋ธ๋์น์์ python-kivy Arch ํจํค์ง ํ๋ฉด ๋์ผํ ์ค๋ฅ๋ก ์คํจํฉ๋๋ค.
PKGBUILD์ ํจ์น ๋ฅผ ์ ์ฉํ๋ฉด x86_64 ๋ฐ์คํฌํ์์ ๋ง์คํฐ Kivy๋ฅผ ๋น๋ํ ์ ์์ต๋๋ค.
ARM์ฉ ๋น๋๋ ๋ฐ์คํฌํฑ๊ณผ ๋์ผํ๊ฒ ์๋ํด์ผ ํ๋ฉฐ ํด๋น PKGBUILD ํ์ผ์ ์
๋ฐ์ดํธํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
https://archlinuxarm.org/packages/arm/python-kivy
https://archlinuxarm.org/packages/arm/sdl_mixer
URL์ 'arm'์ ๊ฐ์ง๊ณ ์๋ Raspberry Pi์ ARM ๋ฒ์ ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด 1 - armv6
๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด 2 - armv7
๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด 3 - armv8
๊ทธ๋ฌ๋ ARM์ฉ ArchLinux์ sdl_mixer์ฉ ํจํค์ง๊ฐ 1.2.12-5์ธ ๊ฒ์ ์์์ต๋๋ค. ์ด ํจํค์ง๋ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
#5459์ ์ํด ํ์
์ด๊ฒ์ MacOS High Sierra์ ์ฌ์ ํ ์กด์ฌํฉ๋๋ค.
@duaneking
pip install https://github.com/kivy/kivy/archive/master.zip(https://kivy.org/docs/installation/installation-osx.html ์ฐธ์กฐ)๊ณผ ๊ฐ์ ๊ฐ๋ฐ ๋ฒ์ ์ ์ค์นํ๋ฉด High์์ ์๋ํฉ๋๋ค. ์ฐ๋งฅ.
๋์๊ฒ๋ ์ ํ ์ฌํญ์ด ์๋๋๋ค. HS๊ฐ ์ค๋ซ๋์ ์ฃผ๋ณ์ ์์๊ธฐ ๋๋ฌธ์ ์ง๊ธ์ non-kiva ์ต์ ์ ์ฐพ๊ณ ์์ต๋๋ค. ์ปค๋ฎค๋ํฐ์์ ์ด๊ฒ์ ๋ฐฐ์ก/์ ์ง ๊ด๋ฆฌํ๋ ๋ฐ ์ ๊ฒฝ ์ฐ์ง ์๋๋ค๋ฉด, ๊ทธ๊ฒ์ ์์กดํด์๋ ์ ๋ฉ๋๋ค.
์ด ์์ ์ผ๋ก Kivy ๋ฒ์ ์ ์ถ์ํ ์ ์๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ต๋๊น? Ubuntu 18.04๊ฐ ๋ฐฉ๊ธ ์ถ์๋์์ผ๋ฏ๋ก ์ด๊ฒ์ Linux ์ฌ์ฉ์ ๊ธฐ๋ฐ์ ๊ฑฐ์ 95%์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
Kivy Development Version ์ค์น๋ High Sierra์์ ์๋ํ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๊ฒ์ MacOS High Sierra์ ์ฌ์ ํ ์กด์ฌํฉ๋๋ค.