Well I'm trying to recompile this module
https://forums.alliedmods.net/showthread.php?t=170370 but every time i'm getting the following errors :
1. Makefile :
PHP Code:
#(C)2004-2005 AMX Mod X Development Team
# Makefile written by David "BAILOPAN" Anderson
HLSDK = hlsdk
MM_ROOT = metamod/metamod
### EDIT BELOW FOR OTHER PROJECTS ###
OPT_FLAGS = -O2 -funroll-loops -s -pipe -fno-strict-aliasing -fomit-frame-pointer
DEBUG_FLAGS = -g -ggdb3
CPP = gcc
NAME = winsock
BIN_SUFFIX_32 = amxx_i386.so
BIN_SUFFIX_64 = amxx_amd64.so
OBJECTS = sdk/amxxmodule.cpp winsock.cpp
LINK =
INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
-I$(MM_ROOT) -I$(HLSDK)/common -Isdk
GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
ifeq "$(GCC_VERSION)" "4"
OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
endif
ifeq "$(DEBUG)" "true"
BIN_DIR = Debug
CFLAGS = $(DEBUG_FLAGS)
else
BIN_DIR = Release
CFLAGS = $(OPT_FLAGS)
endif
CFLAGS += -DNDEBUG -Wall -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32
ifeq "$(AMD64)" "true"
BINARY = $(NAME)_$(BIN_SUFFIX_64)
CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64
else
BINARY = $(NAME)_$(BIN_SUFFIX_32)
CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
OPT_FLAGS += -march=i586
endif
OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
$(BIN_DIR)/%.o: %.cpp
$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
all:
mkdir -p $(BIN_DIR)
mkdir -p $(BIN_DIR)/sdk
$(MAKE) winsock
amd64:
$(MAKE) all AMD64=true
winsock: $(OBJ_LINUX)
$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
debug:
$(MAKE) all DEBUG=true
default: all
clean:
rm -rf Release/sdk/*.o
rm -rf Release/*.o
rm -rf Release/$(NAME)_$(BIN_SUFFIX_32)
rm -rf Release/$(NAME)_$(BIN_SUFFIX_64)
rm -rf Debug/sdk/*.o
rm -rf Debug/*.o
rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32)
rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64)
Errors :
PHP Code:
C:\Users\My Document\Desktop\winsock_src>make
mkdir -p Release
mkdir -p Release/sdk
make winsock
make[1]: Entering directory `/c/Users/My Document/Desktop/winsock_src'
gcc -I. -Ihlsdk -Ihlsdk/dlls -Ihlsdk/engine -Ihlsdk/game_shared -Ihlsdk/game_shared -Imetamod/metamod -Ihlsdk/common -Isdk -O2 -funroll-loops -s -pipe -fno-strict-aliasing -fomit-frame-pointer -fvisib
ility=hidden -fvisibility-inlines-hidden -march=i586 -DNDEBUG -Wall -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32 -DPAWN_CELL_SIZE=32 -DJIT -DASM32 Release/sdk/amxxmodule.o Release/win
sock.o -shared -ldl -lm -oRelease/winsock_amxx_i386.so
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -ldl
collect2.exe: error: ld returned 1 exit status
make[1]: *** [winsock] Error 1
make[1]: Leaving directory `/c/Users/My Document/Desktop/winsock_src'
make: *** [all] Error 2
Solution :
I just commented these lines
PHP Code:
winsock: $(OBJ_LINUX)
$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
But now another error shows up,
2. Error:
PHP Code:
C:\Users\My Document\Desktop\winsock_src>make
mkdir -p Release
mkdir -p Release/sdk
make winsock
make[1]: Entering directory `/c/Users/My Document/Desktop/winsock_src'
g++ winsock.cpp -o winsock
winsock.cpp: In function 'int Create_Window()':
winsock.cpp:315:19: warning: converting to non-pointer type 'int' from NULL [-Wconversion-null]
wClass.cbClsExtra=NULL;
^
winsock.cpp:317:19: warning: converting to non-pointer type 'int' from NULL [-Wconversion-null]
wClass.cbWndExtra=NULL;
^
winsock.cpp:342:9: warning: passing NULL to non-pointer argument 1 of 'HWND__* CreateWindowExA(DWORD, LPCSTR, LPCSTR, DWORD, in
NULL);
^
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x7): undefined reference to `g_fn_GetAmxAddr'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x48): undefined reference to `g_fn_GetAmxString'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0xb9): undefined reference to `socket@12'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0xca): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0xfd): undefined reference to `WSAAsyncSelect@16'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x10f): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x144): undefined reference to `inet_addr@4'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x16a): undefined reference to `gethostbyname@4'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x17b): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x1cb): undefined reference to `htons@4'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x1ed): undefined reference to `connect@12'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x1fa): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x216): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x23c): undefined reference to `g_fn_GetAmxAddr'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x2a9): undefined reference to `socket@12'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x2ba): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x2fb): undefined reference to `setsockopt@20'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x30d): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x340): undefined reference to `WSAAsyncSelect@16'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x352): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x39c): undefined reference to `htons@4'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x3be): undefined reference to `bind@12'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x3cb): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x3e7): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x406): undefined reference to `listen@8'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x413): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x42f): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x455): undefined reference to `g_fn_GetAmxAddr'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x495): undefined reference to `accept@12'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x4a6): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x4c2): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x4e9): undefined reference to `closesocket@4'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x4f6): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x50a): undefined reference to `g_fn_GetAmxAddr'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x5a6): undefined reference to `recv@16'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x5b7): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x5e4): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x619): undefined reference to `g_fn_GetAmxAddr'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x69f): undefined reference to `g_fn_GetAmxAddr'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x6ea): undefined reference to `ioctlsocket@12'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x6fc): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x72d): undefined reference to `g_fn_GetAmxString'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x758): undefined reference to `g_fn_GetAmxAddr'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x795): undefined reference to `send@16'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x7af): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x7cb): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x7fc): undefined reference to `g_fn_GetAmxAddr'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x85e): undefined reference to `g_fn_GetAmxAddr'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x8d0): undefined reference to `send@16'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x8e1): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x8fd): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x919): undefined reference to `g_fn_GetAmxAddr'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x95f): undefined reference to `getpeername@12'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x971): undefined reference to `WSAGetLastError@0'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x985): undefined reference to `g_fn_GetAmxAddr'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x9a1): undefined reference to `g_fn_GetAmxAddr'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x9bd): undefined reference to `g_fn_GetAmxAddr'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x9e3): undefined reference to `ntohs@4'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0x9f9): undefined reference to `inet_ntoa@4'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0xbd9): undefined reference to `g_fn_ExecuteForward'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0xbf9): undefined reference to `g_fn_ExecuteForward'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0xc19): undefined reference to `g_fn_ExecuteForward'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0xc39): undefined reference to `g_fn_ExecuteForward'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0xcb3): undefined reference to `WSAStartup@8'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0xcc4): undefined reference to `g_fn_AddNatives'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0xce4): undefined reference to `g_fn_RegisterForward'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0xd17): undefined reference to `g_fn_RegisterForward'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0xd4a): undefined reference to `g_fn_RegisterForward'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0xd7d): undefined reference to `g_fn_RegisterForward'
C:\Users\MYDOCU~1\AppData\Local\Temp\ccYrxmOd.o:winsock.cpp:(.text+0xdb8): undefined reference to `WSACleanup@0'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libmingw32.a(main.o):(.text.startup+0xa7): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
make[1]: *** [winsock] Error 1
make[1]: Leaving directory `/c/Users/My Document/Desktop/winsock_src'
make: *** [all] Error 2
This time i can't get it.
Well I got all the binaries from the git and defined the paths properly still can't get it.
Please help.
GCC 4.8.1