Сборка l4dtoolz для Debian 10

Статус
В этой теме нельзя размещать новые ответы.

Admin

Administrator
Собираем из исходников популярный плагин l4dtoolz под линукс Debian10 x64 для игры Left 4 Dead 2.

Устанавливаем пакет git (если нету)
sudo apt-get install git

Устанавливаем пакеты gcc:
sudo sudo apt-get install g++-multilib (если нету)

Создаем папку для сборки:
mkdir -p alliedmodders

Заходим в данную папку:
cd alliedmodders

Загружаем исходники для L4D2 hl2sdk:
git clone --depth=1 --branch=l4d2 https://github.com/alliedmodders/hl2sdk hl2sdk-l4d2

Загружаем исходники metamod:
git clone --depth=1 --branch=1.10-dev https://github.com/alliedmodders/metamod-source mmsource-1.10

Скачиваем исходники l4dtoolz:
git clone --recursive https://github.com/TyUser/l4dtoolz

Переходим в папку l4dtoolz:
cd l4dtoolz

Запускаем компилятор:
make -f l4d2_make
видим ошибку:
../hl2sdk-l4d2/public/tier1/utlmemory.h: In member function ‘void CUtlMemory<T, I>::Swap(CUtlMemory<T, I>&)’:
../hl2sdk-l4d2/public/tier1/utlmemory.h:330:2: error: there are no arguments to ‘V_swap’ that depend on a template parameter, so a declaration of ‘V_swap’ must be available [-fpermissive]
V_swap( m_nGrowSize, mem.m_nGrowSize );
^~~~~~
../hl2sdk-l4d2/public/tier1/utlmemory.h:330:2: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
../hl2sdk-l4d2/public/tier1/utlmemory.h:332:2: error: there are no arguments to ‘V_swap’ that depend on a template parameter, so a declaration of ‘V_swap’ must be available [-fpermissive]
V_swap( m_nAllocationCount, mem.m_nAllocationCount );
^~~~~~
идём по пути ~alliedmodders/hl2sdk-l4d2/public/tier1/utlmemory.h и открываем в notepad++ файл utlmemory.h и добавляем в него библиотеку
#include "mathlib/mathlib.h" и сохраняем.
повторяем команду: make -f l4d2_make и видим что плагин l4dtoolz успешно собран.
admin@hellstar:~/alliedmodders/l4dtoolz$ make -f l4d2_make
mkdir -p l4d2_release
ln -sf ../hl2sdk-l4d2/lib/linux/libvstdlib_srv.so
ln -sf ../hl2sdk-l4d2/lib/linux/libtier0_srv.so
gcc -I. -I../mmsource-1.10/core -I../mmsource-1.10/core/sourcehook -I../hl2sdk-l4d2/public -I../hl2sdk-l4d2/public/tier0 -I../hl2sdk-l4d2/public/tier1 -I../hl2sdk-l4d2/public/engine -I../hl2sdk-l4d2/public/mathlib -I../hl2sdk-l4d2/public/appframework -DSOURCE_ENGINE=9 -D__GIT_VERSION=\"1.1\" -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_BLOODYGOODTIME=4 -DSE_EYE=5 -DSE_CSS=6 -DSE_ORANGEBOXVALVE=7 -DSE_LEFT4DEAD=8 -DSE_LEFT4DEAD2=9 -DSE_ALIENSWARM=10 -DSE_PORTAL2=11 -DSE_CSGO=12 -DPOSIX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -DCOMPILER_GCC -Wno-overloaded-virtual -Wno-switch -Wno-unused -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -m32 -DNDEBUG -O2 -funroll-loops -pipe -fno-strict-aliasing -D_LINUX -mfpmath=sse -fvisibility=hidden -Wno-non-virtual-dtor -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -std=c++11 -Wall -Werror -o l4d2_release/l4dtoolz_mm.o -c l4dtoolz_mm.cpp
gcc -I. -I../mmsource-1.10/core -I../mmsource-1.10/core/sourcehook -I../hl2sdk-l4d2/public -I../hl2sdk-l4d2/public/tier0 -I../hl2sdk-l4d2/public/tier1 -I../hl2sdk-l4d2/public/engine -I../hl2sdk-l4d2/public/mathlib -I../hl2sdk-l4d2/public/appframework -DSOURCE_ENGINE=9 -D__GIT_VERSION=\"1.1\" -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_BLOODYGOODTIME=4 -DSE_EYE=5 -DSE_CSS=6 -DSE_ORANGEBOXVALVE=7 -DSE_LEFT4DEAD=8 -DSE_LEFT4DEAD2=9 -DSE_ALIENSWARM=10 -DSE_PORTAL2=11 -DSE_CSGO=12 -DPOSIX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -DCOMPILER_GCC -Wno-overloaded-virtual -Wno-switch -Wno-unused -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -m32 -DNDEBUG -O2 -funroll-loops -pipe -fno-strict-aliasing -D_LINUX -mfpmath=sse -fvisibility=hidden -Wno-non-virtual-dtor -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -std=c++11 -Wall -Werror -o l4d2_release/signature.o -c signature.cpp
gcc -I. -I../mmsource-1.10/core -I../mmsource-1.10/core/sourcehook -I../hl2sdk-l4d2/public -I../hl2sdk-l4d2/public/tier0 -I../hl2sdk-l4d2/public/tier1 -I../hl2sdk-l4d2/public/engine -I../hl2sdk-l4d2/public/mathlib -I../hl2sdk-l4d2/public/appframework l4d2_release/l4dtoolz_mm.o l4d2_release/signature.o ../hl2sdk-l4d2/lib/linux/tier1_i486.a libvstdlib_srv.so libtier0_srv.so -m32 -shared -static-libgcc -ldl -lm -o l4d2_release/l4dtoolz_mm_i486.so
rm -rf l4d2_release/*.o
zip -r l4d2_toolz.zip ./l4d2_release/
updating: l4d2_release/ (stored 0%)
updating: l4d2_release/l4dtoolz_mm_i486.so (deflated 59%)
admin@hellstar:~/alliedmodders/l4dtoolz$
Плагин l4dtoolz_mm_i486.so успешно собран и лежит в архиве: ~/alliedmodders/l4dtoolz/l4d2_toolz.zip либо уже распакованная версия ~/alliedmodders/l4dtoolz/l4d2_release
Переименовываем l4dtoolz_mm_i486.so в l4dtoolz_mm.so чтобы метамод загрузил его и ложим с папкой l4dtoolz рядом с metamod
 

Вложения

  • l4d2_toolz.zip
    75.3 KB · Просмотры: 25
Статус
В этой теме нельзя размещать новые ответы.
Сверху