Пытаюсь собрать библиотеку сервера для half-life 2 deathmatch (для дальнейшей модификации).
Публичный sdk: http://hg.alliedmods.net/hl2sdks/hl2sdk-ob-valve/file/4f3ac1d94787
Разумеется в Makefile первая указанная цель vcpm, без него не получится конвертированного проекта.
Сборка падает со следующим выхлопом:
/usr/bin/g++-4.4.6 -I../public -I/usr/include -I../public/tier0 -I../public/tier1 -I../utils/common -DARCH=i486 -DNDEBUG -D_LINUX -DLINUX -DVPROF_LEVEL=1 -DSWDS -D_finite=finite -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -mtune=i686 -march=pentium3 -mmmx -m32 -fno-strict-aliasing -Wall -Wsign-compare -Werror -Wno-conversion -Wno-overloaded-virtual -Wno-non-virtual-dtor -Wno-invalid-offsetof -mfpmath=sse -msse -DHAVE_STDINT_H -fno-rtti -Usprintf -Ustrncpy -UPROTECTED_THINGS_ENABLE -o obj/vcpm/vcprojconvert.o -c ../utils/vprojtomake/vcprojconvert.cpp
In file included from ../public/tier1/utlvector.h:25,
from ../utils/vprojtomake/vcprojconvert.h:14,
from ../utils/vprojtomake/vcprojconvert.cpp:83:
../public/tier1/strtools.h: In function ‘int V_stricmp(const char*, const char*)’:
../public/tier1/strtools.h:101: ошибка: нет декларации ‘stricmp’ в этой области видимости
In file included from ../public/tier1/utlsymbol.h:17,
from ../utils/vprojtomake/vcprojconvert.h:15,
from ../utils/vprojtomake/vcprojconvert.cpp:83:
../public/tier1/utlrbtree.h: In function ‘bool CaselessStringLessThan(const char* const&, const char* const&)’:
../public/tier1/utlrbtree.h:33: ошибка: нет декларации ‘stricmp’ в этой области видимости
Разумеется, #include <string.h> присутствует, но ошибка всё равно вылазит. Дописывание этого инклуда во все указанные файлы не помогает. Версия gcc 4.4.6, судя по описанию должна быть совместима.
В 4.5.3 и 4.6.3 добовляется ../public/tier1/strtools.h:101:87: ошибка: control reaches end of non-void function [-Werror=return-type]
Куда рыть? Может, какой-то флаг запрещает/разрешает использовать stricmp? Или просто задать его через другие стандартные функции?