Локальне компілювання плагінів

Cyxarik

Модератор
Вступ.
Для компілювання плагіна Вам потрібно помістити його вихідник(ісходник) з роздільною здатністю .sma в папку scripting ( /amxmodx/scripting )
Якщо з вихідним кодом йде файл з роздільною здатністю .inc - поміщаємо його в папку include (/amxmodx/scripting/include)

Компілювання на Windows


Перший спосіб - компілювання всіх плагінів у директорії scripting
Даний варіант скомпілює всі ваші sma файли, які лежать у папці scripting
  • Запускаємо програму compile.exe і чекаємо на завершення компілювання
  • Готові файли будуть лежати в папці compiled (/amxmodx/scripting/compiled)
all_plugins.gif
Другий спосіб – компілювання конкретного плагіна
Якщо потрібно скомпілювати якийсь окремий плагін, тоді чинимо так:
  • Переносимо потрібний файл sma на іконку compile.exe
  • Готовий файл лежатиме в папці compiled ( /amxmodx/scripting/compiled )
solo_plug.gif

Третій спосіб - компілювання за допомогою командного рядка
  1. Перебуваючи в папці scripting, натиснути SHIFT + ПКМ у вільному місці директорії та вибрати "відкрити вікно команд".
  2. 2139pDE.png
  3. Використовувати команду amxxpc <ім'я файлу.sma> [опції], наприклад, amxxpc admin.sma.
  4. Якщо компіляція пройшла без помилок, то скомпільований .amxx файл лежатиме в директорії scripting/compiled з тим самим ім'ям, що й у .sma файлу.
-A <число> - виділення байтів для сегментів даних та стека
-a - зберегти код асемблера в окремий файл
-C [+/-] - компактне кодування вихідного файлу (за замовчуванням =-)
-c <ім'я> - кодування, наприклад, 1252 для Windows Latin-1
-D шлях – шлях до активної директорії
-d0 – без символьної інформації, без перевірки під час виконання
-d1 - [за промовчанням] перевірки під час виконання, без символьної інформації
-d2 - повна налагоджувальна інформація та динамічні перевірки
-d3 - повна налагоджувальна інформація та динамічні перевірки, без оптимізації
-e <ім'я> - ім'я файлу з помилками
-H <hwnd> - windows вікно, в яке слід надіслати інформацію при завершенні компіляції
-i <ім'я> - шлях до .inc файлів
-l - створити .lst файл (тільки попередній процес)
-o <ім'я> - встановити ім'я вихідного файлу .amxx
-p <ім'я> - встановити префікс для вихідного файлу
-r [ім'я] - написати звіт у консоль або спеціальний файл
Options:
-A<num> alignment in bytes of the data segment and the stack
-a output assembler code
-C[+/-] compact encoding for output file (default=-)
-c<name> codepage name or number; e.g. 1252 for Windows Latin-1
-Dpath active directory path
-d0 no symbolic information, no run-time checks
-d1 [default] run-time checks, no symbolic information
-d2 full debug information and dynamic checking
-d3 full debug information, dynamic checking, no optimization
-e<name> set name of error file (quiet compile)
-H<hwnd> window handle to send a notification message on finish
-i<name> path for include files
-l create list file (preprocess only)
-o<name> set base name of output file
-p<name> set name of "prefix" file
-r[name] write cross reference report to console or to specified file

Четвертий спосіб – компілювання за допомогою notepad++

  1. Завантажуємо сам notepad++ з оф. сайту
  2. Нам знадобиться плагін NppExec
  3. Завантажуємо його через Plugin Manager (Плагіни => Plugin Manager => Show Plugin Manager)
FEW1BZ9.pngg1WRpyy.png

4. Після встановлення NppExec, підтверджуємо перезапуск notepad++
5. Налаштуємо наш NppExec для компілювання плагінів ( Плагіни => NppExec => Execute )
mKt1OjY.png
6. У вікні треба вказати шлях для нашого компілятора
C++:
cd $(CURRENT_DIRECTORY)
C++:
"C:\Users\Admin\Desktop\ReAMXX\pb\compile.exe" "$(FILE_NAME)"

C:\Users\Admin\Desktop\ReAMXX\pb\ - це ваш шлях до файлу compile.exe, підставте тут свій шлях.
W3jdjYx.png

7. Натискаємо Save... і вказуємо назву нашого скрипту
pe2r1bC.png
8. Знову Save і потім OK
9. Налаштування скрипта завершено. Зробимо гарячу клавішу для зручності.
10. Відкриваємо розширені налаштування (Плагіни => NppExec => Advanced Options)
QdAVqf4.png

11. У вікні знаходимо Associated script і вибираємо назву нашого скрипта, який ми створили раніше
12. Натискаємо Add/Modify і в полі Menu items має з'явитися наш скрипт
qwhsQOn.png
13. Натискаємо ОК та перезапуску notepad++
14. Заходимо Опції => Гарячі клавіші та вибираємо вкладку Plugins Commands
15. Знаходимо Execute... і Direct Execute Previous і скидаємо їх налаштування (знімаємо галочки та виставляємо None)
bXPFGXp.png
16. У цьому ж вікні знаходимо наш скрипт і задаємо клавішу активації ( у мене F6 )
1C6xrm2.png
17. Тепер при натисканні клавіші F6, наш скрипт буде скомпільовано.

Компілювання на Linux


Мається на увазі, що ми працюємо з терміналом і не маємо GUI

Для початку потрібно потрапити до нашої директорії з вихідними джерелами
Шлях трохи відрізнятиметься у кожного через назви свого облікового запису
Команда:
cd /home/user/server_dir/cstrike/addons/amxmodx/scripting
де user - ім'я вашого користувача в системі, а server_dir - назва папки, де знаходиться сервер (можливо у вас файли вилучені в кореневу директорію користувача, тоді цей крок на адресу не потрібен)

Виставляємо права на виконання:
Usage: pawncc <filename> [filename...] [options]
Options:
-A<num> - alignment in bytes of the data segment and the stack
-a - output assembler code
-C[+/-] - compact encoding for output file (default=-)
-c <name> - codepage name or number; e.g. 1252 for Windows Latin-1
-d0 - no symbolic information, no run-time checks
-d1 - [default] run-time checks, no symbolic information
-d2 - full debug information and dynamic checking
-d3 - full debug information, dynamic checking, no optimization
-e <name> - set name of error file (quiet compile)
-i <name> - path for include files
-l - create list file (preprocess only)
-o<name> - set base name of (P-code) output file
-p<name> - set name of "prefix" file
-r[name] - write cross reference report to console or to specified file
-S<num> - stack/heap size in cells (default=4096)
-s<num> - skip lines from the input file
-t<num> - TAB indent size (in character positions, default=8)
-v<num> - verbosity level; 0=quiet, 1=normal, 2=verbose (default=1)
-w<num> - disable a specific warning by its number
-E - treat warnings as errors
-X<num> - abstract machine size limit in bytes
-\ - use '\' for escape characters
-^ - use '^' for escape characters
-;[+/-] - require a semicolon to end each statement (default=-)
-([+/-] - require parantheses for function invocation (default=-)
sym=val - define constant "sym" with value "val"
sym= - define constant "sym" with value 0
Перший спосіб - компілювання всіх плагінів у директорії scripting
Даний варіант скомпілює всі ваші sma файли, які лежать у папці scripting
  1. Запускаємо скрипт командою ./compile.sh і чекаємо на завершення компілювання.
  2. Отримуємо звіт про виконане завдання та натискаємо Q, щоб закрити звіт
  3. Готові файли будуть лежати в папці compiled (/amxmodx/scripting/compiled)
xwgZhAr.gif
Другий спосіб – компілювання конкретного плагіна
Якщо потрібно скомпілювати якийсь окремий плагін, тоді чинимо так:
  1. Запускаємо скрипт командою ./amxxpc timeleft.sma і чекаємо на завершення компілювання.
  2. Готовий файл лежатиме в цій же папці ( /amxmodx/scripting )


Онлайн компілятор я не розглядаю, тому що він не зручний через відсутність кастомних директив ( .inc), які потрібні для роботи вашого плагіна.
Використовувався матеріал з форума(ів) AGHL (KORD_12.7), SA-MP (Slice) та dev-cs (Tranquillity)
 

Вкладення

  • 1.9.0_5263_linux_scripting.zip
    548.1 Кб · Перегляди: 0
  • 1.9.0_5263_scripting.zip
    698.1 Кб · Перегляди: 0
Останнє редагування:
Угорі