Kivy: Kivy๋Š” SDL_mixer v2.0.2๋กœ ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 10์›” 27์ผ  ยท  14์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: kivy/kivy

๋ฒ„์ „

  • ํŒŒ์ด์ฌ: 3.6.2
  • OS: ์•„์น˜๋ฆฌ๋ˆ…์Šค
  • Kivy: 2017.10.27 ๊ธฐ์ค€ ์ตœ์‹  ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜
  • Kivy ์„ค์น˜ ๋ฐฉ๋ฒ•: ์†Œ์Šค์—์„œ ์ปดํŒŒ์ผ

์„ค๋ช…

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

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด๊ฒƒ์€ MacOS High Sierra์— ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  14 ๋Œ“๊ธ€

์ด๊ฒƒ์€ 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์—์„œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰