Electr0 Опубликовано 1 июля, 2019 Опубликовано 1 июля, 2019 Собирать будем под ubuntu 14.04 lts 32-bit, скачать ее можно тут: releases.ubuntu.com/trusty Инструкция создана на базе статьи Сборка из исходников l4dtoolz, от автора с ником 'iHX" Открываем Terminal Устанавливаем пакет git sudo apt-get install git Устанавливаем пакеты gcc и g++ sudo apt-get install gcc g++ Создаем папку в которой все и будем делать mkdir -p alliedmodders_filenetmessages Переходим в созданную нами папку alliedmodders_filenetmessages cd alliedmodders_filenetmessages Скачиваем исходники hl2sdk для Left 4 dead 2 git clone --depth=1 --branch=l4d2 https://github.com/alliedmodders/hl2sdk hl2sdk-l4d2 Скачиваем исходники для Sourcemod 1.9 Stable git clone --recursive --depth=1 --branch=1.9-dev https://github.com/alliedmodders/sourcemod sourcemod-central Скачиваем исходники для Metamod:Source 1.10 git clone --depth=1 --branch=1.10-dev https://github.com/alliedmodders/metamod-source mmsource-central Скачиваем исходники для FileNetMessages git clone https://github.com/dordnung/FileNetMessages FileNetMessages После данных команд, у Вас в папке alliedmodders_filenetmessages будут 4 папки со скачанными исходниками нужными для сборки расширения FileNetMessages Заходим в папку FileNetMessages, переходим папку sdk и перемещаем файл smsdk_config.h в папку FileNetMessages, после чего удаляем папку sdk, должно получится вот такое содержимое папки FileNetMessages Заходим в папку FileNetMessages и открываем файл Makefile Актуализируем строки с путями к папкам исходников в шапке Makefile, в данном случае нас интересуют только константы SMSDK, HL2SDK_L4D2, MMSOURCE SMSDK = ../../sourcemod-1.6 HL2SDK_L4D2 = ../../hl2sdk-l4d2 MMSOURCE = ../../mmsource-1.10 Изменить на: SMSDK = ../sourcemod-central HL2SDK_L4D2 = ../hl2sdk-l4d2 MMSOURCE = ../mmsource-central Исправляем использование автором расширение скопированных smsdk_ext.cpp, нужно использовать актуальные версии файлов из SDK Sourcemod: Находим OBJECTS = sdk/smsdk_ext.cpp extension.cpp clientlistener.cpp Изменить на: OBJECTS = smsdk_ext.cpp extension.cpp clientlistener.cpp Находим ln -sf $(HL2LIB)/$(LIB_PREFIX)vstdlib$(LIB_SUFFIX); \ ln -sf $(HL2LIB)/$(LIB_PREFIX)tier0$(LIB_SUFFIX); \ Изменить на: ln -sf $(SMSDK)/public/smsdk_ext.cpp; \ ln -sf $(HL2LIB)/$(LIB_PREFIX)vstdlib$(LIB_SUFFIX); \ ln -sf $(HL2LIB)/$(LIB_PREFIX)tier0$(LIB_SUFFIX); \ Далее исправляем флаги сборки C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -pipe -fno-strict-aliasing C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 C_GCC4_FLAGS = -fvisibility=hidden CPP_GCC4_FLAGS = -fvisibility-inlines-hidden CPP = gcc CPP_OSX = clang Изменить на: C_OPT_FLAGS = -D_LINUX \ -Dstricmp=strcasecmp \ -D_stricmp=strcasecmp \ -D_strnicmp=strncasecmp \ -Dstrnicmp=strncasecmp \ -D_snprintf=snprintf \ -D_vsnprintf=vsnprintf \ -D_alloca=alloca \ -Dstrcmpi=strcasecmp \ -Wall \ -Werror \ -Wno-switch \ -Wno-unused \ -msse \ -DSOURCEMOD_BUILD \ -DHAVE_STDINT_H \ -m32 \ -DNDEBUG \ -O3 \ -funroll-loops \ -pipe \ -fno-strict-aliasing \ -fvisibility=hidden \ -DCOMPILER_GCC \ -mfpmath=sse CPP_GCC4_FLAGS = -Wno-non-virtual-dtor \ -fvisibility-inlines-hidden \ -fno-exceptions \ -fno-rtti \ -std=c++11 C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 C_GCC4_FLAGS = -fvisibility=hidden CPP = gcc CPP_OSX = clang Исправляем путь к папке sourcepawn/include который у автора расширения устарел: INCLUDE += -I. -I.. -Isdk -Ipublic -Ilisteners -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn Изменить на: INCLUDE += -I. -I.. -Isdk -Ipublic -Ilisteners -I$(SMSDK)/public -I$(SMSDK)/sourcepawn/include Все, подготовка закончена, можно собирать! Переходим в папку FileNetMessages в консоли cd FileNetMessages Собираем FileNetMessages make -f Makefile ENGINE=left4dead2 Если все хорошо у вас будет вот такой ответ консоли Теперь открываем папку FileNetMessages => Release.left4dead2 и видим там собранный файл filenetmessages.ext.2.l4d2.so Готовый Makefile с изменениями из данной статьи: Makefile Собранный в ходе урока filenetmessages.ext.2.l4d2.so filenetmessages.ext.2.l4d2.so Цитата
Electr0 Опубликовано 6 июля, 2019 Автор Опубликовано 6 июля, 2019 добавлена информация о том как исключить из сборки скопированный автором расширения файл smsdk_ext.cpp, вместо него указываем на этот файл из SDK Soircemod чтобы собирать под свежими версиями этого файла. Так же приложен собранный в ходе урока файл filenetmessages.ext.2.l4d2.so Цитата
Electr0 Опубликовано 10 июля, 2019 Автор Опубликовано 10 июля, 2019 благодаря применению параметра --recursive в ссылке скачивания репозитория Sourcemod можно не ложить файлы sp_typeutil.h, sp_vm_api.h, sp_vm_types.h самостоятельно т.к. под модуль sourcepawn репозитория sourcemod скачается сам. Соседние с данной инструкцией упрощены по этому поводу, и файлы в них пересобраны. Цитата
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.