Установка и работа с BLT на Linux == Про Windows и Mac в контексте связки Go + BLT, я говорить не буду, поскольку не ел устриц. С Linux, которая моя основная рабочая ось - другая история, здесь вносят свой шарм особенности работы линкера. Дело в том, что BLT написана на C. Но! есть готовые биндинги для Go, НО! В Terminal/Include/Go по умолчанию указаны такие флаги линкера CGO (стр 25) ```go // #cgo LDFLAGS: -lBearLibTerminal ``` Что подразумевает глобальную вивдимость библиотеки. Увы, пока пакета с BLT для распространенных дистрибутивов Linux нет. Поэтому беде нужно помочь руками. Сначала вручную показать линтеру, что такая библиотека есть, и потом перезагрузить кеш путей к библиотекам:: ```bash $ sudo echo "/path/to/libbearterminal.so" > /etc/ld.so.conf.d/libbearterminal.conf && sudo ldconfig ``` Проблема тут в том, что эту же операцию придется проделать всем, кто захочет запустить ваше приложение с BLT. Вопреки распространенному стереотипу - доля красноглазых пользователей Linux с каждым годом падает, и эта консольная магия для большинства уже некомильфо. Способ второй, которым воспользовался я, намного проще для пользователя. Редактируем файл с биндингами примерно следующим образом: ```go // #cgo LDFLAGS: -L. -Wl,-rpath -Wl,./ -lBearLibTerminal // #include // #include import "C" ``` (знатоки С, простите, я этими флагами вообще пользоваться не умею) Далее - собираем приложение с libtcod ```go build -o test```. Проверяем, что относительные пути записались в бинарник: ```bash objdump -p test | grep RPATH ``` Результат должен быть таким: ```bash RPATH ./ ``` Ура! Теперь кладем libBearLibTerminal.so прямо в папку с main.go и запускам go run (или скомпилированный бинарник) прям оттуда. Собранные таким образом бинарники будут искать библиотеку в той же папке, где находятся они сами. Теперь при дистрибуции приложения можно просто положить .so файл библиотеки рядом, и все будет работать! Вторая кочка, на котрой