Компиляция amxx модуля

Сообщения
594
Реакции
350
Предупреждения
1
Помог
9 раз(а)
Доброго времени суток.

Сейчас я покажу вам, как скомпилировать amxx модуль. На примере, я возьму модуль PersistentDataStorage .
Основа статьи была взята с AM, там можно почитать доп. информацию.
Что бы заняться компилированием ?, нам понадобится система с oc linux , тк я не имею этого, я возьму вдс с oc linux (debian 8). (Берем самый дешевый тариф за 2р в день.)

Итак, мы зашли на vds, первым делом, нам надо обновиться:
Код:
apt-get update
apt-get upgrade
Далее, если не установлено sudo:
Код:
apt-get install sudo
Устанавливаем git
Код:
apt-get install git
Устанавливаем доп. компоненты
Код:
sudo apt-get install gcc g++ clang nasm
Если вы крафтите на х64, то требуется установить х32 либы:
Код:
sudo apt-get install ia32-libs
sudo apt-get install lib32z1 lib32z1-dev
sudo apt-get install libc6-dev-i386 libc6-i386
sudo apt-get install gcc-multilib g++-multilib
Устанавливаем python 2.7
Код:
sudo apt-get install python2.7
Тащим с гита ambuild и устанавливаем его:
Код:
git clone https://github.com/alliedmodders/ambuild
cd ambuild
python setup.py install
Все компоненты, мы установили, теперь приступим к компиляции.
Переходим в корень, тащим исходник PersistentDataStorage с гита и заходим в папку PersistentDataStorage:
Код:
cd
git clone https://gitlab.com/fant1k4552/PersistentDataStorage
cd PersistentDataStorage
Запускаем файл конфигурации и переходим в папку obj-linux
Код:
python ./configure.py
cd obj-linux
Запускаем ambuild и ждем
Код:
ambuild
Если все удачно, прошло, в консоли, должно быть примерно вот так:
20239
Усё, вы справились :)
Готовый модуль лежит в папке
Код:
 obj_linux/PersistentDataStorage_amxx_i386/PersistentDataStorage_amxx_i386.so
p.s: писал данную статью на одном вдохе, так что, не ругайте за ошибки ;) спасибо Garey за инструктаж и fantom за модуль
 
Последнее редактирование:
Сообщения
207
Реакции
420
Помог
10 раз(а)
Что бы заняться компилированием ?, нам понадобится система с oc linux , тк я не имею этого, я возьму вдс с oc linux (debian 8). (Берем самый дешевый тариф за 2р в день.)
А не проще в VirtualBox захостить?

Итак, мы зашли на vds, первым делом, нам надо обновиться:
C++:
apt-get update
Это обновляет кеш, а не саму систему. Систему тоже стоило бы обновить, для этого выполняется apt-get upgrade.

И судо не нужен, т.к. судя по скрину, сборка выполняется под рутом, а значит все установки пакетов - тоже.
 
Сообщения
594
Реакции
350
Предупреждения
1
Помог
9 раз(а)
Прикладываю исходник модуля PersistentDataStorage, который работает на amxx 1.8.2. (на других версиях не тестировалось) ty Garey
25 Дек 2019
CrazyHackGUT, не было возможности, но все равно спасибо за инф
upd: возможно, в следующий раз попытаюсь рассказать как компилировать meta модули, rehlds, regamedll и т.п. ;)
 

Вложения

Сообщения
207
Реакции
420
Помог
10 раз(а)
можно воспользоваться WSL если установлена Windows 10
Сам-то пробовал собирать в WSL? Я пару раз пробовал, ни разу расширения не заводились. Но то SourceMod был.
Компилировались, но не заводились.
 
Сообщения
169
Реакции
462
Помог
2 раз(а)
VirtualBox и прочее
Предпочитаю VMware + CMake.
Пробовал многие популярные виртуалки, в том числе WSL, VirtualBox и Hyper-V. Но VMware лучшая ИМХО (платная, но на тырнетах все есть :)).
 
Сообщения
207
Реакции
420
Помог
10 раз(а)
Для компиляции и бокса локального хватит.
А вообще, собирая расширения на протяжении трех лет (и не только их), понял, что лучше всего компилить на той же ОС, на которой крутится сервер.

Был случай, когда знакомому собрал расширение под Ubuntu 14.04 (вообще все предпочитаю под ней собирать), а у него на Debian 9 не завелось из-за различий в версиях глибса. Разбираться было лень, пришлось качать девятый Деб и собирать там.
 
  • Нравится
Реакции: Ayk

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу