Взял makefile от fakemeta, что-то в нём изменил, на Ubuntu скомпилировал и модуль работает.
После удалил с него команды, которые windows не понимает и ветвления по типу ОС
Если скомпилировать в Visual Studio тоже работает.
Гляньте, что не так с этим мэйкфайлом.
- Код: Выделить всё
HLSDK = ../hlsdk
MM_ROOT = ../metamod/metamod
PROJECT = namemodule
OBJECTS = sdk/amxxmodule.cpp namemodule.cpp
C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe
C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
C_GCC4_FLAGS = -fvisibility=hidden
CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
CPP = gcc
LINK = -shared
INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
-I$(HLSDK)/pm_shared -I$(HLSDK)/public -I$(MM_ROOT) -Isdk
LIB_EXT = dll
LIB_SUFFIX = _amxx
LINK += -m32 -lm
CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall \
-Wno-invalid-offsetof
CPPFLAGS += -fno-exceptions -fno-rtti
BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
ifeq "$(DEBUG)" "true"
BIN_DIR = Debug
CFLAGS += $(C_DEBUG_FLAGS)
else
BIN_DIR = Release
CFLAGS += $(C_OPT_FLAGS)
LINK += -s
endif
CFLAGS += $(C_GCC4_FLAGS)
CPPFLAGS += $(CPP_GCC4_FLAGS)
CPPFLAGS += -Wno-delete-non-virtual-dtor
LINK += -static-libgcc
OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
$(BIN_DIR)/%.o: %.cpp
$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
all:
if not exist $(BIN_DIR)\sdk mkdir $(BIN_DIR)\sdk
$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
$(PROJECT): $(OBJ_BIN)
$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
debug:
$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
default: all
clean:
rm -rf $(BIN_DIR)/*.o
rm -rf $(BIN_DIR)/sdk/*.o
rm -f $(BIN_DIR)/$(BINARY)
Поначалу компилятор ругался на типы, в каждый .cpp добавил:
- Код: Выделить всё
#include <sys/types.h>
typedef long int32;
typedef unsigned long uint32;
typedef unsigned long long uint64;
make от Code::Blocks - mingw32-make.exe.
PATH = C:\Program Files\CodeBlocks\MinGW\bin
В meta list badf load.
В amxx modules pending.