Обкладинка нотатки: [Фікс] 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) буду фіксити пізніше (якщо треба буде, звісно).

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

Якщо ви хочете процитувати цей допис у своїй роботі, статті, блозі, використовуйте наведену нижче інформацію.

Розгорнути деталі


🙌 Підтримати блог @memecode

Ви можете поширити цей допис у соцмережах, чим допоможете платформі цейво розвиватись (* ^ ω ^)

📝 Більше публікацій:
Обкладинка нотатки: Чим відрізняється int та bigint в Ruby? Мінімальні та максимальні значення.
Обкладинка нотатки: Що означає помилка 'is out of range' в Ruby on Rails? Range Error - Integer with limit 4 bytes
Обкладинка нотатки: Що таке імутабільність та мутабільність?
Обкладинка нотатки: [Ruby] Що повернеться в результаті складання 10.5 та 10?
Обкладинка нотатки: [Ruby] Чим відрізняються змінні, що починаються з @, @@ та $?
Обкладинка нотатки: Що таке функція в програмуванні?
Обкладинка нотатки: Як зробити пустий git commit?
Обкладинка нотатки: Ruby-бібліотека Gosu для створення 2D-ігор
Обкладинка нотатки: Gosu Ruby Tutorial - пройдемось по офіційній документації
Обкладинка нотатки: Пишемо демо-гру Drones vs Zombies (Gosu / Ruby)
Обкладинка нотатки: Як пофіксити збій Windows викликаний CrowdStrike?
Обкладинка нотатки: Що означає .map(&:name) в Ruby?
Дисклеймер

Інформація на сайті tseivo.com є суб'єктивною та відображає особисті погляди та досвід авторів та авторок блогів.

Використовуйте цей ресурс як одне з декількох джерел інформації під час своїх досліджень та прийняття рішень. Завжди застосовуйте критичне мислення. Людина сама несе відповідальність за свої рішення та дії.