[Назад]
Ответ в нить
Animapcha image [@] [?]
Тема   ( ответ в 146304)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов GIF, JPG, MP4, OGV, PNG, WEBM размером до 5000 кБ.
  • Ныне 2711 unique user posts. Посмотреть каталог
  • Максимальное количество бампов нити: 375
156232578951.png-(4.90KB, 550×184, nethack.png)
146304
No. 146304    
Автобус, помоги разобраться с компилированием программы из исходного кода.
Хотел поставить игрушку "NetHack" с графикой "Vulture Eye", для Windows 10. А разработчик тайлсета обнаглел, продает его в стиме вместе с игрой. Пиратки в интернете нет. На сайте размещен код, предлагают компилировать оттуда в MinGW, чтобы получить бинарники. Пробовал по этой инструкции
https://github.com/DanielT/Vulture/blob/master/dist/win32/build_instructions.txt
Выдаёт ошибку на третьем шаге. Да и версии библиотек в программе другие, не те которые указаны в инструкции, а других там нет. Другие инструкции вообще для пользователей Linux. Я не разбираюсь во всех этих библиотеках, а просто хочу поиграть в рогалик. Что лучше сделать: поискать более старую версию MinGW, для которой делалась инструкция, или попробовать какой-то другой способ компиляции?
Развернуть все изображения
No. 146305    
Архив с кодом лежит там http://download.darkarts.co.za/vulture/Vulture for NetHack - Community Edition 2.4.zip
No. 146306    
Отродясь ничего не компилировал.
No. 146309    
>>146304
>Unpack and compile the libraries inside this environment.
>For zlib run:
make -f win32/Makefile.gcc -j 8
>make -f win32/Makefile.gcc SHARED_MODE=1 BINARY_PATH=/mingw/bin INCLUDE_PATH=/mingw/include LIBRARY_PATH=/mingw/lib install

То есть, как я понимаю, вышепроцитированным образом инструкия гласит компилировать zlib. Пытались ли вы этой командой скомпилировать zlib или сделать что-то ещё?

make не может найти файл, по которому ему предлагается выполнить компиляцию.
Извините за глупый вопрос, но распакованы ли исходники zlib нужной версии? В них есть win32/Makefile.gcc? Какова текущая директория терминала и что в ней лежит.
No. 146310    
156234609814.png-(50.94KB, 967×608, zlib.png)
146310
>>146309
PS
Малость объясню своё понимание инструкции (её части).
Для компиляции основной программы, согласно инструкции, сначала нужно скомпилировать/поставить_в_среду зависимости. В частности — zlibc.

Например, чтобы поставить zlibc можно:
1. Скачать и распаковать исходники zlibc (ссылки для скачивания можно найти на официальном сайте) куда-нибудь: скажем, заведём в рабочей папке, в которой лежит папка с исходнками игры, папку deps для зависимостей и будем кидать исходники зависимостей туда.

2. Найти эту папку в среде MinGW (в том терминале) и перейти в неё. Как:
2.1 На момент исполнения команд на вашем скриншоте вы находились в home-папке среды (в ~), путь к которой в Windows при стандартной инсталляции C:\MinGW\msys\1.0\home\имя_пользователя\. Я предлагаю сделать символьную ссылку в папке C:\MinGW\msys\1.0\home\имя_пользователя\ на рабочуюю директорию с исходниками, чтобы они были доступны из ~ в терминале среды.
2.2 После того, как такая ссылка была создана, проверьте: по ней из ~ можно будет перейти, вбив cd имя_ссылки. Всё должно получиться; проверьте, сделав listing содержимого — результатом команды ls должен быть список тех же папок/файлов, что и в рабочей директории.
2.3. Идём в ту папку с исходниками zlibc. (Идём, очевидно, из ~/имя_ссылки/ по относительному пути: то есть, если абсолютный путь такой папки в Винде C:\что\ни\будь\там\рабочая_папка\deps\zlib-1.2.11, то переходим в deps/zlib-1.2.11 (командой cd deps/zlib-1.2.11). Можно, минуя ненужный шаг 2.2, к ней перейти сразу из ~ по пути имя_ссылки/deps/zlib-1.2.11)

3. Выполнить компиляцию и установку zlibc как указано в инструкции.
3.1 make -f win32/Makefile.gcc -j 8
3.2 make -f win32/Makefile.gcc SHARED_MODE=1 BINARY_PATH=/mingw/bin INCLUDE_PATH=/mingw/include LIBRARY_PATH=/mingw/lib install

В ту же папку deps можно кидать и прочие исходники зависимостей, и выполнить сходие действия для них. (Заново делать символическую ссылку не нужно.)

Примечания:
1. Опция -j 8 указывает на число параллельно запускаемых потоков компиляции, чтобы, в частности, использать более чем одно ядро при компиляции. Таким образом, возможно, следует поставить значение после -j соответсввующее количеству (виртуальных) ядер, а не 8. На одноядерном Пентиуме запускать 8 потоков компиляции не следует. Равно как и запускать всего лишь 8 потоков вместо 56 на каком-нибудь уберкрутом многоядерном Ксеоне, не пользуясь его вычислительными мощностями. С тяжелыми программами (например, chromium) иногда может быть необходимо уменьшить число потоков, чтобы не было переполнения памяти, но в данной ситуации это не грозит.
2. Распаковать .tar.gz можно и средствами среды; например команда tar -xvzf имя_архива.tar.gz распакует тарболл имя_архива.tar.gz, лежащий в текущей папке, в текущуюю папку.
3. cd переходит в указываемую папку, ls возвращает список содержимого текущей или специально указанной папки.
4. Путь к родительской папке для данной, это ... Например, чтобы перейти из ~/родительская_папка/дочерняя_папка в ~/родительская_папка можно выполинть cd ...
5. Если нужно передать программе параметр, который содержит что-то с пробелом или иными спецсимволами, то перед пробелами в параметре следует поставить \ или заключить параметр в кавычки. Например, чтобы перейти из ~/родительская_папка в ~/родительская_папка/дочерняя папка с пробелом в имени следует выполнить cd ~/родительская_папка/дочерняя\ папка\ с\ пробелом\ в\ имени или cd "~/родительская_папка/дочерняя папка с пробелом в имени"

У меня по крайней мере компиляция zlibc легко и успешно прошла. Сейчас дальше пойду.
No. 146312    
>>146310
PPS
В посте много раз путается zlib с zlibc нужен zlib, читайте с осторожностью. А ещё поставлена последняя версия вместо указанной в инструкции.
No. 146328    
Не получилось собрать только SDL-mixer, остальные зависимости, пусть и не все указанных версий, компилируемы указанным в инструкции способом на довольно «чистой» свежей домашней Win10 64 bit. Но и эту проблему можно попробовать порешать. А ещё можно попробовать найти готовые сборки зависимостей нужных версий и встроить их, чтобы избежать компиляции.
Если нормальный способ собрать vulture — собрать vulture на линуксе, то, наверное, можно накатить линукс на флешку и собрать vulture там?
Как бы там ни было, удачи!
Удалить сообщение []
Пароль  
[Mod]