ГоловнаВсі публікаціїКатегоріїПро проєкт

[Фікс] extconf.rb failed під час встановлення Ruby-бібліотеки Gosu

Обкладинка нотатки: [Фікс] extconf.rb failed під час встановлення Ruby-бібліотеки Gosu
Ліба gosu — це популярний гем для Ruby, який надає простий та потужний інтерфейс для створення 2D ігор. Вона включає у себе функції для роботи з графікою, звуком та інпутом (управління).
Під час спроби встановлення бібліотеки Gosu, отримав наступну помилку:
~ gem install gosu
Building native extensions. This could take a while...
ERROR:  Error installing gosu:
ERROR: Failed to build gem native extension.

    current directory: /Users/user/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/gosu-1.4.6/ext/gosu
/Users/user/.rbenv/versions/3.2.1/bin/ruby extconf.rb
The Gosu gem requires some libraries to be installed system-wide.
See the following site for a list:
https://github.com/gosu/gosu/wiki/Getting-Started-on-OS-X
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/Users/user/.rbenv/versions/3.2.1/bin/$(RUBY_BASE_NAME)
extconf.rb:71:in ``': No such file or directory - sdl2-config (Errno::ENOENT)
from extconf.rb:71:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in /Users/user/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/gosu-1.4.6 for inspection.
Results logged to /Users/nikita/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/extensions/x86_64-darwin-23/3.2.0/gosu-1.4.6/gem_make.out
Машина - Mac з M1, але термінал запущений під Rosseta.
Перевіряємо:
~ arch
i386
Brew вже встановлений, тож треба встановити ліби, які потрібні Gosu, а саме:
brew install sdl2
brew install sdl2_image
brew install sdl2_mixer
brew install sdl2_ttf
brew install libogg
brew install libvorbis
Після цього gosu та gosu-examples встановлюються без проблем:
~ gem install gosu 
Building native extensions. This could take a while...
Successfully installed gosu-1.4.6
Parsing documentation for gosu-1.4.6
Installing ri documentation for gosu-1.4.6
Done installing documentation for gosu after 0 seconds
1 gem installed
~ gem install gosu-examples

Successfully installed gosu-examples-1.0.7
Parsing documentation for gosu-examples-1.0.7
Installing ri documentation for gosu-examples-1.0.7
Done installing documentation for gosu-examples after 0 seconds
1 gem installed
Запускаємо gosu-examples, щоб побачити вікно з прикладами ігор.
~ gosu-examples
*** Cannot load chipmunk_and_rmagick.rb:
cannot load such file -- chipmunk

*** Cannot load chipmunk_integration.rb:
cannot load such file -- chipmunk

*** Cannot load opengl_integration.rb:
cannot load such file -- opengl

*** Cannot load rmagick_integration.rb:
cannot load such file -- rmagick
gosu-examples
gosu-examples
Ось ці попередження в терміналі (cannot load such file) буду фіксити пізніше (якщо треба буде, звісно).
Чим відрізняється int та bigint в Ruby? Мінімальні та максимальні значення.
13.06.2024 06:37

Чим відрізняється int та bigint в Ruby? Мінімальні та максимальні значення.

meme code
meme code@memecode
Що означає помилка 'is out of range' в Ruby on Rails? Range Error - Integer with limit 4 bytes
13.06.2024 07:18

Що означає помилка 'is out of range' в Ruby on Rails? Range Error - Integer with limit 4 bytes

meme code
meme code@memecode
Що таке імутабільність та мутабільність?
19.06.2024 07:48

Що таке імутабільність та мутабільність?

meme code
meme code@memecode
[Ruby] Що повернеться в результаті складання 10.5 та 10?
23.06.2024 13:23

[Ruby] Що повернеться в результаті складання 10.5 та 10?

meme code
meme code@memecode
[Ruby] Чим відрізняються змінні, що починаються з @, @@ та $?
23.06.2024 14:00

[Ruby] Чим відрізняються змінні, що починаються з @, @@ та $?

meme code
meme code@memecode
Що таке функція в програмуванні?
24.06.2024 18:15

Що таке функція в програмуванні?

meme code
meme code@memecode
Як зробити пустий git commit?
28.06.2024 08:33

Як зробити пустий git commit?

meme code
meme code@memecode
Ruby-бібліотека Gosu для створення 2D-ігор
29.06.2024 08:48

Ruby-бібліотека Gosu для створення 2D-ігор

meme code
meme code@memecode
Gosu Ruby Tutorial - пройдемось по офіційній документації
03.07.2024 11:50

Gosu Ruby Tutorial - пройдемось по офіційній документації

meme code
meme code@memecode
Пишемо демо-гру Drones vs Zombies (Gosu / Ruby)
12.07.2024 12:17

Пишемо демо-гру Drones vs Zombies (Gosu / Ruby)

meme code
meme code@memecode
Як пофіксити збій Windows викликаний CrowdStrike?
19.07.2024 13:53

Як пофіксити збій Windows викликаний CrowdStrike?

meme code
meme code@memecode
Що означає .map(&:name) в Ruby?
28.07.2024 11:18

Що означає .map(&:name) в Ruby?

meme code
meme code@memecode