PDA

View Full Version : Compiling dlls with MingWing


Beasty
06-03-2005, 04:55
When compiling with MingWing in Command Prompt, I get an error. I've set everything up for the patch as Botman said in SDK 2.2 patch. But when I compile the dll, this error comes up (I only wrote the last 3 lines).

.cpp: undefined reference to ' vtable for __cxxabv1::__class_type_info '
dllwrap: gcc exited with status 1
make: *** [mm.dll] Error 1

I haven't modified any of the source code and note that mm.dll is the name of my dll file. But my mod and dlls folder are both empty even after I try to compile. I'm using SDK version 2.3. I'm probably not supposed to use SDK 2.2 patch, but there's no SDK 2.3 patch. The MingWing I'm using came with Dev C++ and I'm using Windows XP Professional. This error comes up when I try to compile any dll file. Suggestions would be greatly appreciated. :(

Whistler
06-03-2005, 05:21
change "gcc" to "g++" in makefile. gcc is C compiler and g++ is C++ compiler.

also I advise you using this version of MinGW instead of that one comes with Dev-C++:
http://prdownloads.sourceforge.net/mingw/MinGW-3.1.0-1.exe?download

Beasty
06-03-2005, 06:35
The error still comes up if I change gcc to g++. I've downloaded MinGWing from that site and installed. I've also created a batch file and changed the directory as botman said, but now command prompt says it does not know what the "make" command means, even after I've loaded the batch file. Here's the contents of the batch file and makefile:

Batch File:
SET MING_DIR=E:\MinGW
PATH=%MING_DIR%\bin;%PATH%
SET GCC_EXEC_PREFIX=%MING_DIR%\lib\gcc-lib\

Make File:
#
# Half-Life Full SDK 2.2 Makefile for MinGW 1.0.1
#
# March 2002 by botman (botman@planethalflife.com)
#
# this is the name of your game MOD DLL file...
DLLNAME=hl
# the following specifies the path to your MOD...
MOD_DIR = E:\SIERRA\Half-Life\my_mod
# make sure this is the correct compiler for your system
CC=gcc
DLL_SRCDIR=.
ENGINE_SRCDIR=..\engine
COMMON_SRCDIR=..\common
WPN_SHARED_SRCDIR=wpn_shared
PM_SHARED_SRCDIR=..\pm_shared
GAME_SHARED_SRCDIR=..\game_shared

DLL_OBJDIR=$(DLL_SRCDIR)\obj
WPN_SHARED_OBJDIR=$(WPN_SHARED_SRCDIR)\obj
PM_SHARED_OBJDIR=$(PM_SHARED_SRCDIR)\obj
GAME_SHARED_OBJDIR=$(GAME_SHARED_SRCDIR)\obj
BASE_CFLAGS=-DCLIENT_WEAPONS
# safe optimization...
CFLAGS=$(BASE_CFLAGS) -w -m486 -O1
# full optimization...
#CFLAGS=$(BASE_CFLAGS) -w -m486 -O2 -Os -ffast-math -funroll-loops \
-fomit-frame-pointer -fexpensive-optimizations \
-malign-loops=2 -malign-jumps=2 -malign-functions=2
# use these when debugging...
#CFLAGS=$(BASE_CFLAGS) -g
INCLUDEDIRS=-I. -I$(ENGINE_SRCDIR) -I$(COMMON_SRCDIR) -I$(PM_SHARED_SRCDIR) -I$(GAME_SHARED_SRCDIR)
# normal linker flags...
LDFLAGS=
# use these when debugging...
#LDFLAGS=
DO_CC=$(CC) $(CFLAGS) $(INCLUDEDIRS) -o $@ -c $<
################################################## ###########################
# SETUP AND BUILD
# GAME
################################################## ###########################
$(DLL_OBJDIR)/%.o: $(DLL_SRCDIR)/%.cpp
$(DO_CC)
$(WPN_SHARED_OBJDIR)/%.o: $(WPN_SHARED_SRCDIR)/%.cpp
$(DO_CC)
$(GAME_SHARED_OBJDIR)/%.o: $(GAME_SHARED_SRCDIR)/%.cpp
$(DO_CC)
$(PM_SHARED_OBJDIR)/%.o: $(PM_SHARED_SRCDIR)/%.c
$(DO_CC)
OBJ = \
$(DLL_OBJDIR)/aflock.o \
$(DLL_OBJDIR)/agrunt.o \
$(DLL_OBJDIR)/airtank.o \
$(DLL_OBJDIR)/animating.o \
$(DLL_OBJDIR)/animation.o \
$(DLL_OBJDIR)/apache.o \
$(DLL_OBJDIR)/barnacle.o \
$(DLL_OBJDIR)/barney.o \
$(DLL_OBJDIR)/bigmomma.o \
$(DLL_OBJDIR)/bloater.o \
$(DLL_OBJDIR)/bmodels.o \
$(DLL_OBJDIR)/bullsquid.o \
$(DLL_OBJDIR)/buttons.o \
$(DLL_OBJDIR)/cbase.o \
$(DLL_OBJDIR)/client.o \
$(DLL_OBJDIR)/combat.o \
$(DLL_OBJDIR)/controller.o \
$(DLL_OBJDIR)/crossbow.o \
$(DLL_OBJDIR)/crowbar.o \
$(DLL_OBJDIR)/defaultai.o \
$(DLL_OBJDIR)/doors.o \
$(DLL_OBJDIR)/effects.o \
$(DLL_OBJDIR)/egon.o \
$(DLL_OBJDIR)/explode.o \
$(DLL_OBJDIR)/flyingmonster.o \
$(DLL_OBJDIR)/func_break.o \
$(DLL_OBJDIR)/func_tank.o \
$(DLL_OBJDIR)/game.o \
$(DLL_OBJDIR)/gamerules.o \
$(DLL_OBJDIR)/gargantua.o \
$(DLL_OBJDIR)/gauss.o \
$(DLL_OBJDIR)/genericmonster.o \
$(DLL_OBJDIR)/ggrenade.o \
$(DLL_OBJDIR)/globals.o \
$(DLL_OBJDIR)/gman.o \
$(DLL_OBJDIR)/h_ai.o \
$(DLL_OBJDIR)/h_battery.o \
$(DLL_OBJDIR)/h_cine.o \
$(DLL_OBJDIR)/h_cycler.o \
$(DLL_OBJDIR)/h_export.o \
$(DLL_OBJDIR)/handgrenade.o \
$(DLL_OBJDIR)/hassassin.o \
$(DLL_OBJDIR)/headcrab.o \
$(DLL_OBJDIR)/healthkit.o \
$(DLL_OBJDIR)/hgrunt.o \
$(DLL_OBJDIR)/hornet.o \
$(DLL_OBJDIR)/hornetgun.o \
$(DLL_OBJDIR)/houndeye.o \
$(DLL_OBJDIR)/ichthyosaur.o \
$(DLL_OBJDIR)/islave.o \
$(DLL_OBJDIR)/items.o \
$(DLL_OBJDIR)/leech.o \
$(DLL_OBJDIR)/lights.o \
$(DLL_OBJDIR)/maprules.o \
$(DLL_OBJDIR)/monstermaker.o \
$(DLL_OBJDIR)/monsters.o \
$(DLL_OBJDIR)/monsterstate.o \
$(DLL_OBJDIR)/mortar.o \
$(DLL_OBJDIR)/mp5.o \
$(DLL_OBJDIR)/multiplay_gamerules.o \
$(DLL_OBJDIR)/namefunc.o \
$(DLL_OBJDIR)/nihilanth.o \
$(DLL_OBJDIR)/nodes.o \
$(DLL_OBJDIR)/osprey.o \
$(DLL_OBJDIR)/pathcorner.o \
$(DLL_OBJDIR)/plane.o \
$(DLL_OBJDIR)/plats.o \
$(DLL_OBJDIR)/player.o \
$(DLL_OBJDIR)/python.o \
$(DLL_OBJDIR)/rat.o \
$(DLL_OBJDIR)/roach.o \
$(DLL_OBJDIR)/rpg.o \
$(DLL_OBJDIR)/satchel.o \
$(DLL_OBJDIR)/schedule.o \
$(DLL_OBJDIR)/scientist.o \
$(DLL_OBJDIR)/scripted.o \
$(DLL_OBJDIR)/shotgun.o \
$(DLL_OBJDIR)/singleplay_gamerules.o \
$(DLL_OBJDIR)/skill.o \
$(DLL_OBJDIR)/sound.o \
$(DLL_OBJDIR)/soundent.o \
$(DLL_OBJDIR)/spectator.o \
$(DLL_OBJDIR)/squadmonster.o \
$(DLL_OBJDIR)/squeakgrenade.o \
$(DLL_OBJDIR)/subs.o \
$(DLL_OBJDIR)/talkmonster.o \
$(DLL_OBJDIR)/teamplay_gamerules.o \
$(DLL_OBJDIR)/tempmonster.o \
$(DLL_OBJDIR)/tentacle.o \
$(DLL_OBJDIR)/triggers.o \
$(DLL_OBJDIR)/tripmine.o \
$(DLL_OBJDIR)/turret.o \
$(DLL_OBJDIR)/util.o \
$(DLL_OBJDIR)/weapons.o \
$(DLL_OBJDIR)/world.o \
$(DLL_OBJDIR)/xen.o \
$(DLL_OBJDIR)/zombie.o \
$(WPN_SHARED_OBJDIR)/hl_wpn_glock.o \
$(GAME_SHARED_OBJDIR)/voice_gamemgr.o \
$(PM_SHARED_OBJDIR)/pm_debug.o \
$(PM_SHARED_OBJDIR)/pm_math.o \
$(PM_SHARED_OBJDIR)/pm_shared.o

all: $(MOD_DIR)\dlls\$(DLLNAME).dll

$(MOD_DIR)\dlls\$(DLLNAME).dll: $(DLLNAME).dll
copy $(DLLNAME).dll $(MOD_DIR)\dlls\$(DLLNAME).dll /Y

$(DLLNAME).dll: $(DLL_OBJDIR)/null $(WPN_SHARED_OBJDIR)/null \
$(GAME_SHARED_OBJDIR)/null $(PM_SHARED_OBJDIR)/null $(OBJ)
dlltool -z $(DLLNAME)_MinGW.def $(OBJ)
echo DllMain=DllMain@12 >> $(DLLNAME)_MinGW.def
echo GiveFnptrsToDll = GiveFnptrsToDll@8 >> $(DLLNAME)_MinGW.def
dllwrap -s --def $(DLLNAME)_MinGW.def -o $(DLLNAME).dll \
$(OBJ) -mwindows

$(DLL_OBJDIR)/null:
mkdir $(DLL_OBJDIR)
@type nul >$(DLL_OBJDIR)\null
$(WPN_SHARED_OBJDIR)/null:
mkdir $(WPN_SHARED_OBJDIR)
@type nul >$(WPN_SHARED_OBJDIR)\null
$(GAME_SHARED_OBJDIR)/null:
mkdir $(GAME_SHARED_OBJDIR)
@type nul >$(GAME_SHARED_OBJDIR)\null
$(PM_SHARED_OBJDIR)/null:
mkdir $(PM_SHARED_OBJDIR)
@type nul >$(PM_SHARED_OBJDIR)\null
clean:
del $(DLL_OBJDIR)\*.o
del $(WPN_SHARED_OBJDIR)\*.o
del $(GAME_SHARED_OBJDIR)\*.o
del $(PM_SHARED_OBJDIR)\*.o
del $(DLLNAME)_MinGW.def
del $(DLLNAME).dll
spotless: clean
@del $(DLL_OBJDIR)\null
rmdir $(DLL_OBJDIR)
@del $(WPN_SHARED_OBJDIR)\null
rmdir $(WPN_SHARED_OBJDIR)
@del $(GAME_SHARED_OBJDIR)\null
rmdir $(GAME_SHARED_OBJDIR)
@del $(PM_SHARED_OBJDIR)\null
rmdir $(PM_SHARED_OBJDIR)

Thanks for the tips! And you did mean to change the gcc to g++ in the CC section at the beginning, right?

Whistler
06-03-2005, 09:23
"And you did mean to change the gcc to g++ in the CC section at the beginning, right?"

No. I mean that use g++ to compile .cpp files, and use gcc to compile C files.
my makefile for HLSDK is like this:
#
# Half-Life Full SDK 2.2 Makefile for MinGW
#
# March 2002 by botman (botman@planethalflife.com)
# Modified by Wei Mingzhi (whistler_wmz@users.sf.net)
#

# this is the name of your game MOD DLL file...
DLLNAME=hl

# make sure this is the correct compiler for your system
CC=gcc
CPP=g++

DLL_SRCDIR=.
ENGINE_SRCDIR=../engine
COMMON_SRCDIR=../common
WPN_SHARED_SRCDIR=./wpn_shared
PM_SHARED_SRCDIR=../pm_shared
GAME_SHARED_SRCDIR=../game_shared

MAIN_OBJDIR=$(DLL_SRCDIR)/obj
DLL_OBJDIR=$(DLL_SRCDIR)/obj/dll
WPN_SHARED_OBJDIR=$(DLL_SRCDIR)/obj/wpn_shared
PM_SHARED_OBJDIR=$(DLL_SRCDIR)/obj/pm_shared
GAME_SHARED_OBJDIR=$(DLL_SRCDIR)/obj/game_shared

BASE_CFLAGS=-DCLIENT_WEAPONS

CFLAGS=$(BASE_CFLAGS) -w -march=i486 -O2

# use these when debugging...
#CFLAGS=$(BASE_CFLAGS) -g

INCLUDEDIRS=-I. -I$(ENGINE_SRCDIR) -I$(COMMON_SRCDIR) -I$(PM_SHARED_SRCDIR) -I$(GAME_SHARED_SRCDIR)

# normal linker flags...
LDFLAGS=-s

# use these when debugging...
#LDFLAGS=

DO_CC=$(CC) $(CFLAGS) $(INCLUDEDIRS) -o $@ -c $<
DO_CPP=$(CPP) $(CFLAGS) $(INCLUDEDIRS) -o $@ -c $<

################################################## ###########################
# SETUP AND BUILD
# GAME
################################################## ###########################

$(DLL_OBJDIR)/%.o: $(DLL_SRCDIR)/%.cpp
$(DO_CPP)

$(WPN_SHARED_OBJDIR)/%.o: $(WPN_SHARED_SRCDIR)/%.cpp
$(DO_CPP)

$(GAME_SHARED_OBJDIR)/%.o: $(GAME_SHARED_SRCDIR)/%.cpp
$(DO_CPP)

$(PM_SHARED_OBJDIR)/%.o: $(PM_SHARED_SRCDIR)/%.c
$(DO_CC)

OBJ = \
$(DLL_OBJDIR)/aflock.o \
$(DLL_OBJDIR)/agrunt.o \
$(DLL_OBJDIR)/airtank.o \
$(DLL_OBJDIR)/animating.o \
$(DLL_OBJDIR)/animation.o \
$(DLL_OBJDIR)/apache.o \
$(DLL_OBJDIR)/barnacle.o \
$(DLL_OBJDIR)/barney.o \
$(DLL_OBJDIR)/bigmomma.o \
$(DLL_OBJDIR)/bloater.o \
$(DLL_OBJDIR)/bmodels.o \
$(DLL_OBJDIR)/bullsquid.o \
$(DLL_OBJDIR)/buttons.o \
$(DLL_OBJDIR)/cbase.o \
$(DLL_OBJDIR)/client.o \
$(DLL_OBJDIR)/combat.o \
$(DLL_OBJDIR)/controller.o \
$(DLL_OBJDIR)/crossbow.o \
$(DLL_OBJDIR)/crowbar.o \
$(DLL_OBJDIR)/defaultai.o \
$(DLL_OBJDIR)/doors.o \
$(DLL_OBJDIR)/effects.o \
$(DLL_OBJDIR)/egon.o \
$(DLL_OBJDIR)/explode.o \
$(DLL_OBJDIR)/flyingmonster.o \
$(DLL_OBJDIR)/func_break.o \
$(DLL_OBJDIR)/func_tank.o \
$(DLL_OBJDIR)/game.o \
$(DLL_OBJDIR)/gamerules.o \
$(DLL_OBJDIR)/gargantua.o \
$(DLL_OBJDIR)/gauss.o \
$(DLL_OBJDIR)/genericmonster.o \
$(DLL_OBJDIR)/ggrenade.o \
$(DLL_OBJDIR)/globals.o \
$(DLL_OBJDIR)/gman.o \
$(DLL_OBJDIR)/h_ai.o \
$(DLL_OBJDIR)/h_battery.o \
$(DLL_OBJDIR)/h_cine.o \
$(DLL_OBJDIR)/h_cycler.o \
$(DLL_OBJDIR)/h_export.o \
$(DLL_OBJDIR)/handgrenade.o \
$(DLL_OBJDIR)/hassassin.o \
$(DLL_OBJDIR)/headcrab.o \
$(DLL_OBJDIR)/healthkit.o \
$(DLL_OBJDIR)/hgrunt.o \
$(DLL_OBJDIR)/hornet.o \
$(DLL_OBJDIR)/hornetgun.o \
$(DLL_OBJDIR)/houndeye.o \
$(DLL_OBJDIR)/ichthyosaur.o \
$(DLL_OBJDIR)/islave.o \
$(DLL_OBJDIR)/items.o \
$(DLL_OBJDIR)/leech.o \
$(DLL_OBJDIR)/lights.o \
$(DLL_OBJDIR)/maprules.o \
$(DLL_OBJDIR)/monstermaker.o \
$(DLL_OBJDIR)/monsters.o \
$(DLL_OBJDIR)/monsterstate.o \
$(DLL_OBJDIR)/mortar.o \
$(DLL_OBJDIR)/mp5.o \
$(DLL_OBJDIR)/multiplay_gamerules.o \
$(DLL_OBJDIR)/namefunc.o \
$(DLL_OBJDIR)/nihilanth.o \
$(DLL_OBJDIR)/nodes.o \
$(DLL_OBJDIR)/osprey.o \
$(DLL_OBJDIR)/pathcorner.o \
$(DLL_OBJDIR)/plane.o \
$(DLL_OBJDIR)/plats.o \
$(DLL_OBJDIR)/player.o \
$(DLL_OBJDIR)/python.o \
$(DLL_OBJDIR)/rat.o \
$(DLL_OBJDIR)/roach.o \
$(DLL_OBJDIR)/rpg.o \
$(DLL_OBJDIR)/satchel.o \
$(DLL_OBJDIR)/schedule.o \
$(DLL_OBJDIR)/scientist.o \
$(DLL_OBJDIR)/scripted.o \
$(DLL_OBJDIR)/shotgun.o \
$(DLL_OBJDIR)/singleplay_gamerules.o \
$(DLL_OBJDIR)/skill.o \
$(DLL_OBJDIR)/sound.o \
$(DLL_OBJDIR)/soundent.o \
$(DLL_OBJDIR)/spectator.o \
$(DLL_OBJDIR)/squadmonster.o \
$(DLL_OBJDIR)/squeakgrenade.o \
$(DLL_OBJDIR)/subs.o \
$(DLL_OBJDIR)/talkmonster.o \
$(DLL_OBJDIR)/teamplay_gamerules.o \
$(DLL_OBJDIR)/tempmonster.o \
$(DLL_OBJDIR)/tentacle.o \
$(DLL_OBJDIR)/triggers.o \
$(DLL_OBJDIR)/tripmine.o \
$(DLL_OBJDIR)/turret.o \
$(DLL_OBJDIR)/util.o \
$(DLL_OBJDIR)/weapons.o \
$(DLL_OBJDIR)/world.o \
$(DLL_OBJDIR)/xen.o \
$(DLL_OBJDIR)/zombie.o \
$(WPN_SHARED_OBJDIR)/hl_wpn_glock.o \
$(GAME_SHARED_OBJDIR)/voice_gamemgr.o \
$(PM_SHARED_OBJDIR)/pm_debug.o \
$(PM_SHARED_OBJDIR)/pm_math.o \
$(PM_SHARED_OBJDIR)/pm_shared.o

all: $(MAIN_OBJDIR)/$(DLLNAME).dll

$(MAIN_OBJDIR)/$(DLLNAME).dll: $(DLL_OBJDIR)/dir $(WPN_SHARED_OBJDIR)/dir \
$(GAME_SHARED_OBJDIR)/dir $(PM_SHARED_OBJDIR)/dir $(OBJ)
dllwrap $(LDFLAGS) --add-stdcall-alias --driver-name=$(CPP) -o $(MAIN_OBJDIR)/$(DLLNAME).dll $(OBJ)

$(MAIN_OBJDIR)/dir:
-mkdir $(MAIN_OBJDIR)
-@echo dir >$(MAIN_OBJDIR)/dir

$(DLL_OBJDIR)/dir: $(MAIN_OBJDIR)/dir
-mkdir $(DLL_OBJDIR)
-@echo dir >$(DLL_OBJDIR)/dir

$(WPN_SHARED_OBJDIR)/dir: $(MAIN_OBJDIR)/dir
-mkdir $(WPN_SHARED_OBJDIR)
-@echo dir >$(WPN_SHARED_OBJDIR)/dir

$(GAME_SHARED_OBJDIR)/dir: $(MAIN_OBJDIR)/dir
-mkdir $(GAME_SHARED_OBJDIR)
-@echo dir >$(GAME_SHARED_OBJDIR)/dir

$(PM_SHARED_OBJDIR)/dir: $(MAIN_OBJDIR)/dir
-mkdir $(PM_SHARED_OBJDIR)
-@echo dir >$(PM_SHARED_OBJDIR)/dir

clean:
-rm $(DLL_OBJDIR)/*.o
-rm $(WPN_SHARED_OBJDIR)/*.o
-rm $(GAME_SHARED_OBJDIR)/*.o
-rm $(PM_SHARED_OBJDIR)/*.o
-rm $(MAIN_OBJDIR)/$(DLLNAME).dll


also if you can't use "make" command, use "mingw32-make" instead.

Beasty
07-03-2005, 10:39
The error still comes up. If I use your makefile this error comes up:

makefile:52: *** missing separator. Stop.

Thanks for the help you've given me so far! Can you tell me, in your own words, how to set up the SDK Code for MinGWing? I might have done something wrong.

Pierre-Marie Baty
07-03-2005, 16:08
You need to put backslashes "\" at the end of lines that are broken in several sub-parts. The forum code eats them (it's a vBulletin bug, nobody can really do anything about it)

BTW it's "MinGW", not MingWing. It stands for Minimal GNU for Windows.

Beasty
09-03-2005, 07:55
Can you send your makefile to me, instead? My email is adhikaria4@yahoo.com.au.

Beasty
10-03-2005, 10:35
Whistler? And I can't understand where to put the backslashes.

Whistler
10-03-2005, 13:22
put the backslashes after each .o file

BTW it's "MinGW", not MingWing. It stands for Minimal GNU for Windows.
well it isn't "Minimal", but "Minimalist GNU for Windows" :)

Beasty
12-03-2005, 02:26
Thanks! Sorry, but the error still comes up and I'm having a hard time working out where the backslashes are supposed to be. Could you attach it to an email and send it to me, so that I can try and make the dll properly, whistler?

Whistler
12-03-2005, 08:52
I've uploaded a Dev-C++ and MinGW version of SDK at here (modified from botman's version for the latest version of MinGW):

http://filebase.bots-united.com/index.php?action=file&id=281

note that the "Makefile" is for GNU/Linux, "Makefile.mingw" is for MinGW

Beasty
13-03-2005, 06:43
Awesome! Thanks, Whistler! Is the SDK 2.2 and SDK 2.3 the same, because botman didn't make an SDK patch for 2.3? And the patch is for the Full SDK right, with all the AIs?

Whistler
13-03-2005, 06:56
SDK 2.3 contains HLTV support (just the difference of the spectator mode in CS 1.3 and 1.5), but SDK 2.2 can still be used to make MODs in the latest HL.

also what I've uploaded is the already patched version of full SDK with all monster AI.

Beasty
13-03-2005, 07:52
When I go to compile these errors come up:

mkdir ./obj/dll
The syntax of the command is incorrect.
mingw32-make: [obj/dll/dir] Error 1 (ignored)
The system cannot find the path specified.
mingw32-make: [obj/dll/dir] Error 1 (ignored)
mkdir ./obj/wpn_shared
The syntax of the command is incorrect.
mingw32-make: [obj/wpn_shared/dir] Error 1 (ignored)
The system cannot find the path specified.
mingw32-make: [obj/wpn_shared/dir] Error 1 (ignored)
mkdir ./obj/game_shared
The syntax of the command is incorrect.
mingw32-make: [obj/game_shared/dir] Error 1 (ignored)
The system cannot find the path specified.
mingw32-make: [obj/game_shared/dir] Error 1 (ignored)
mkdir ./obj/pm_shared
The syntax of the command is incorrect.
mingw32-make: [obj/pm_shared/dir] Error 1 (ignored)
The system cannot find the path specified.
mingw32-make: [obj/pm_shared/dir] Error 1 (ignored)
g++ -DCLIENT_WEAPONS -w -march=i486 -O2 -I. -I../engine -I../common -I../pm_shar
ed -I../game_shared -o obj/dll/aflock.o -c aflock.cpp
Assembler messages:
FATAL: can't create obj/dll/aflock.o: No such file or directory
mingw32-make: *** [obj/dll/aflock.o] Error 1

Any suggestions on how to fix them?

Whistler
13-03-2005, 13:06
well my makefile is for MSYS...

try this makefile (actually it's generated by Dev-C++) instead

Beasty
14-03-2005, 10:46
Do I have to change the lines that say C:/... to my MinGW directory? How did you create the dll project as well and how do we change the name of the dll, so that I can build the client.dll and other dlls (e.g HPB_bot source code)? Thanks for the help, it worked!!! :D

If I change some of the C++ files can I still use your project to compile the new dll, because your project loads all the C++ files when I load it?

When compiling the client.dll, I get these errors:
36 E:\Dev-Cpp\projects\Makefile.win [Warning] overriding commands for target `"../../mod-code/Single-Player'
33 E:\Dev-Cpp\projects\Makefile.win [Warning] ignoring old commands for target `"../../mod-code/Single-Player'
39 E:\Dev-Cpp\projects\Makefile.win [Warning] overriding commands for target `"../../mod-code/Single-Player'
36 E:\Dev-Cpp\projects\Makefile.win [Warning] ignoring old commands for target `"../../mod-code/Single-Player'
42 E:\Dev-Cpp\projects\Makefile.win [Warning] overriding commands for target `"../../mod-code/Single-Player'
39 E:\Dev-Cpp\projects\Makefile.win [Warning] ignoring old commands for target `"../../mod-code/Single-Player'
45 E:\Dev-Cpp\projects\Makefile.win [Warning] overriding commands for target `"../../mod-code/Single-Player'
42 E:\Dev-Cpp\projects\Makefile.win [Warning] ignoring old commands for target `"../../mod-code/Single-Player'
48 E:\Dev-Cpp\projects\Makefile.win [Warning] overriding commands for target `"../../mod-code/Single-Player'
45 E:\Dev-Cpp\projects\Makefile.win [Warning] ignoring old commands for target `"../../mod-code/Single-Player'
51 E:\Dev-Cpp\projects\Makefile.win [Warning] overriding commands for target `"../../mod-code/Single-Player'
48 E:\Dev-Cpp\projects\Makefile.win [Warning] ignoring old commands for target `"../../mod-code/Single-Player'
54 E:\Dev-Cpp\projects\Makefile.win [Warning] overriding commands for target `"../../mod-code/Single-Player'
51 E:\Dev-Cpp\projects\Makefile.win [Warning] ignoring old commands for target `"../../mod-code/Single-Player'
57 E:\Dev-Cpp\projects\Makefile.win [Warning] overriding commands for target `"../../mod-code/Single-Player'
54 E:\Dev-Cpp\projects\Makefile.win [Warning] ignoring old commands for target `"../../mod-code/Single-Player'
60 E:\Dev-Cpp\projects\Makefile.win [Warning] overriding commands for target `"../../mod-code/Single-Player'
57 E:\Dev-Cpp\projects\Makefile.win [Warning] ignoring old commands for target `"../../mod-code/Single-Player'
63 E:\Dev-Cpp\projects\Makefile.win [Warning] overriding commands for target `"../../mod-code/Single-Player'
60 E:\Dev-Cpp\projects\Makefile.win [Warning] ignoring old commands for target `"../../mod-code/Single-Player'
66 E:\Dev-Cpp\projects\Makefile.win [Warning] overriding commands for target `"../../mod-code/Single-Player'
63 E:\Dev-Cpp\projects\Makefile.win [Warning] ignoring old commands for target `"../../mod-code/Single-Player'
69 E:\Dev-Cpp\projects\Makefile.win [Warning] overriding commands for target `"../../mod-code/Single-Player'
66 E:\Dev-Cpp\projects\Makefile.win [Warning] ignoring old commands for target `"../../mod-code/Single-Player'
72 E:\Dev-Cpp\projects\Makefile.win [Warning] overriding commands for target `"../../mod-code/Single-Player'

And it keeps on going. It would take me forever to copy and paste because you can't copy multiple lines but try to compile it, there should be these errors and more. Basically, how did you get the hl.dll to compile cleanly? How can I fix these errors?

botman
14-03-2005, 15:48
Things that say [Warning] are warnings, not errors.

Usually you can just ignore warnings.

botman

Beasty
15-03-2005, 07:28
I updated my Dev C++ and now I get this error when compiling the client.dll:

E:\Dev-Cpp\projects\Makefile.win [Build Error] No rule to make target `"../../mod-code/Single-Player', needed by `client.dll'. Stop.

How do I fix this. This is the contents of the Makefile.win:

# Project: client
# Makefile created by Dev-C++ 4.9.9.2
CPP = g++.exe
CC = gcc.exe
WINDRES = windres.exe
RES =
OBJ = "../../mod-code/Single-Player\ Source/cl_dll/ammo.o" "../../mod-code/Single-Player\ Source/cl_dll/ammo_secondary.o" "../../mod-code/Single-Player\ Source/cl_dll/ammohistory.o" "../../mod-code/Single-Player\ Source/cl_dll/battery.o" "../../mod-code/Single-Player\ Source/cl_dll/cdll_int.o" "../../mod-code/Single-Player\ Source/cl_dll/com_weapons.o" "../../mod-code/Single-Player\ Source/cl_dll/death.o" "../../mod-code/Single-Player\ Source/cl_dll/demo.o" "../../mod-code/Single-Player\ Source/cl_dll/entity.o" "../../mod-code/Single-Player\ Source/cl_dll/ev_common.o" "../../mod-code/Single-Player\ Source/cl_dll/ev_hldm.o" "../../mod-code/Single-Player\ Source/cl_dll/events.o" "../../mod-code/Single-Player\ Source/cl_dll/flashlight.o" "../../mod-code/Single-Player\ Source/cl_dll/GameStudioModelRenderer.o" "../../mod-code/Single-Player\ Source/cl_dll/GameStudioModelRenderer_Sample.o" "../../mod-code/Single-Player\ Source/cl_dll/geiger.o" "../../mod-code/Single-Player\ Source/cl_dll/health.o" "../../mod-code/Single-Player\ Source/cl_dll/hud.o" "../../mod-code/Single-Player\ Source/cl_dll/hud_msg.o" "../../mod-code/Single-Player\ Source/cl_dll/hud_redraw.o" "../../mod-code/Single-Player\ Source/cl_dll/hud_servers.o" "../../mod-code/Single-Player\ Source/cl_dll/hud_spectator.o" "../../mod-code/Single-Player\ Source/cl_dll/hud_update.o" "../../mod-code/Single-Player\ Source/cl_dll/in_camera.o" "../../mod-code/Single-Player\ Source/cl_dll/input.o" "../../mod-code/Single-Player\ Source/cl_dll/inputw32.o" "../../mod-code/Single-Player\ Source/cl_dll/menu.o" "../../mod-code/Single-Player\ Source/cl_dll/message.o" "../../mod-code/Single-Player\ Source/cl_dll/overview.o" "../../mod-code/Single-Player\ Source/cl_dll/parsemsg.o" "../../mod-code/Single-Player\ Source/cl_dll/saytext.o" "../../mod-code/Single-Player\ Source/cl_dll/scoreboard.o" "../../mod-code/Single-Player\ Source/cl_dll/soundsystem.o" "../../mod-code/Single-Player\ Source/cl_dll/status_icons.o" "../../mod-code/Single-Player\ Source/cl_dll/statusbar.o" "../../mod-code/Single-Player\ Source/cl_dll/studio_util.o" "../../mod-code/Single-Player\ Source/cl_dll/StudioModelRenderer.o" "../../mod-code/Single-Player\ Source/cl_dll/text_message.o" "../../mod-code/Single-Player\ Source/cl_dll/train.o" "../../mod-code/Single-Player\ Source/cl_dll/tri.o" "../../mod-code/Single-Player\ Source/cl_dll/util.o" "../../mod-code/Single-Player\ Source/cl_dll/vgui_ClassMenu.o" "../../mod-code/Single-Player\ Source/cl_dll/vgui_ConsolePanel.o" "../../mod-code/Single-Player\ Source/cl_dll/vgui_ControlConfigPanel.o" "../../mod-code/Single-Player\ Source/cl_dll/vgui_CustomObjects.o" "../../mod-code/Single-Player\ Source/cl_dll/vgui_int.o" "../../mod-code/Single-Player\ Source/cl_dll/vgui_MOTDWindow.o" "../../mod-code/Single-Player\ Source/cl_dll/vgui_SchemeManager.o" "../../mod-code/Single-Player\ Source/cl_dll/vgui_ScorePanel.o" "../../mod-code/Single-Player\ Source/cl_dll/vgui_ServerBrowser.o" "../../mod-code/Single-Player\ Source/cl_dll/vgui_SpectatorPanel.o" "../../mod-code/Single-Player\ Source/cl_dll/vgui_TeamFortressViewport.o" "../../mod-code/Single-Player\ Source/cl_dll/vgui_teammenu.o" "../../mod-code/Single-Player\ Source/cl_dll/view.o" "../../mod-code/Single-Player\ Source/cl_dll/hl/hl_weapons.o" "../../mod-code/Single-Player\ Source/cl_dll/hl/hl_baseentity.o" "../../mod-code/Single-Player\ Source/cl_dll/hl/hl_events.o" "../../mod-code/Single-Player\ Source/cl_dll/hl/hl_objects.o" $(RES)
LINKOBJ = "../../mod-code/Single-Player Source/cl_dll/ammo.o" "../../mod-code/Single-Player Source/cl_dll/ammo_secondary.o" "../../mod-code/Single-Player Source/cl_dll/ammohistory.o" "../../mod-code/Single-Player Source/cl_dll/battery.o" "../../mod-code/Single-Player Source/cl_dll/cdll_int.o" "../../mod-code/Single-Player Source/cl_dll/com_weapons.o" "../../mod-code/Single-Player Source/cl_dll/death.o" "../../mod-code/Single-Player Source/cl_dll/demo.o" "../../mod-code/Single-Player Source/cl_dll/entity.o" "../../mod-code/Single-Player Source/cl_dll/ev_common.o" "../../mod-code/Single-Player Source/cl_dll/ev_hldm.o" "../../mod-code/Single-Player Source/cl_dll/events.o" "../../mod-code/Single-Player Source/cl_dll/flashlight.o" "../../mod-code/Single-Player Source/cl_dll/GameStudioModelRenderer.o" "../../mod-code/Single-Player Source/cl_dll/GameStudioModelRenderer_Sample.o" "../../mod-code/Single-Player Source/cl_dll/geiger.o" "../../mod-code/Single-Player Source/cl_dll/health.o" "../../mod-code/Single-Player Source/cl_dll/hud.o" "../../mod-code/Single-Player Source/cl_dll/hud_msg.o" "../../mod-code/Single-Player Source/cl_dll/hud_redraw.o" "../../mod-code/Single-Player Source/cl_dll/hud_servers.o" "../../mod-code/Single-Player Source/cl_dll/hud_spectator.o" "../../mod-code/Single-Player Source/cl_dll/hud_update.o" "../../mod-code/Single-Player Source/cl_dll/in_camera.o" "../../mod-code/Single-Player Source/cl_dll/input.o" "../../mod-code/Single-Player Source/cl_dll/inputw32.o" "../../mod-code/Single-Player Source/cl_dll/menu.o" "../../mod-code/Single-Player Source/cl_dll/message.o" "../../mod-code/Single-Player Source/cl_dll/overview.o" "../../mod-code/Single-Player Source/cl_dll/parsemsg.o" "../../mod-code/Single-Player Source/cl_dll/saytext.o" "../../mod-code/Single-Player Source/cl_dll/scoreboard.o" "../../mod-code/Single-Player Source/cl_dll/soundsystem.o" "../../mod-code/Single-Player Source/cl_dll/status_icons.o" "../../mod-code/Single-Player Source/cl_dll/statusbar.o" "../../mod-code/Single-Player Source/cl_dll/studio_util.o" "../../mod-code/Single-Player Source/cl_dll/StudioModelRenderer.o" "../../mod-code/Single-Player Source/cl_dll/text_message.o" "../../mod-code/Single-Player Source/cl_dll/train.o" "../../mod-code/Single-Player Source/cl_dll/tri.o" "../../mod-code/Single-Player Source/cl_dll/util.o" "../../mod-code/Single-Player Source/cl_dll/vgui_ClassMenu.o" "../../mod-code/Single-Player Source/cl_dll/vgui_ConsolePanel.o" "../../mod-code/Single-Player Source/cl_dll/vgui_ControlConfigPanel.o" "../../mod-code/Single-Player Source/cl_dll/vgui_CustomObjects.o" "../../mod-code/Single-Player Source/cl_dll/vgui_int.o" "../../mod-code/Single-Player Source/cl_dll/vgui_MOTDWindow.o" "../../mod-code/Single-Player Source/cl_dll/vgui_SchemeManager.o" "../../mod-code/Single-Player Source/cl_dll/vgui_ScorePanel.o" "../../mod-code/Single-Player Source/cl_dll/vgui_ServerBrowser.o" "../../mod-code/Single-Player Source/cl_dll/vgui_SpectatorPanel.o" "../../mod-code/Single-Player Source/cl_dll/vgui_TeamFortressViewport.o" "../../mod-code/Single-Player Source/cl_dll/vgui_teammenu.o" "../../mod-code/Single-Player Source/cl_dll/view.o" "../../mod-code/Single-Player Source/cl_dll/hl/hl_weapons.o" "../../mod-code/Single-Player Source/cl_dll/hl/hl_baseentity.o" "../../mod-code/Single-Player Source/cl_dll/hl/hl_events.o" "../../mod-code/Single-Player Source/cl_dll/hl/hl_objects.o" $(RES)
LIBS = -L"E:/Dev-Cpp/lib" --no-export-all-symbols --add-stdcall-alias
INCS = -I"E:/Dev-Cpp/include"
CXXINCS = -I"E:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"E:/Dev-Cpp/include/c++/3.4.2/backward" -I"E:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"E:/Dev-Cpp/include/c++/3.4.2" -I"E:/Dev-Cpp/include"
BIN = client.dll
CXXFLAGS = $(CXXINCS) -DBUILDING_DLL=1
CFLAGS = $(INCS) -DBUILDING_DLL=1
RM = rm -f
.PHONY: all all-before all-after clean clean-custom
all: all-before client.dll all-after

clean: clean-custom
${RM} $(OBJ) $(BIN)
DLLWRAP=dllwrap.exe
DEFFILE=libclient.def
STATICLIB=libclient.a
$(BIN): $(LINKOBJ)
$(DLLWRAP) --output-def $(DEFFILE) --driver-name c++ --implib $(STATICLIB) $(LINKOBJ) $(LIBS) -o $(BIN)
"../../mod-code/Single-Player\ Source/cl_dll/ammo.o": ../../mod-code/Single-Player\ Source/cl_dll/ammo.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/ammo.cpp" -o "../../mod-code/Single-Player Source/cl_dll/ammo.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/ammo_secondary.o": ../../mod-code/Single-Player\ Source/cl_dll/ammo_secondary.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/ammo_secondary.cpp" -o "../../mod-code/Single-Player Source/cl_dll/ammo_secondary.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/ammohistory.o": ../../mod-code/Single-Player\ Source/cl_dll/ammohistory.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/ammohistory.cpp" -o "../../mod-code/Single-Player Source/cl_dll/ammohistory.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/battery.o": ../../mod-code/Single-Player\ Source/cl_dll/battery.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/battery.cpp" -o "../../mod-code/Single-Player Source/cl_dll/battery.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/cdll_int.o": ../../mod-code/Single-Player\ Source/cl_dll/cdll_int.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/cdll_int.cpp" -o "../../mod-code/Single-Player Source/cl_dll/cdll_int.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/com_weapons.o": ../../mod-code/Single-Player\ Source/cl_dll/com_weapons.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/com_weapons.cpp" -o "../../mod-code/Single-Player Source/cl_dll/com_weapons.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/death.o": ../../mod-code/Single-Player\ Source/cl_dll/death.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/death.cpp" -o "../../mod-code/Single-Player Source/cl_dll/death.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/demo.o": ../../mod-code/Single-Player\ Source/cl_dll/demo.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/demo.cpp" -o "../../mod-code/Single-Player Source/cl_dll/demo.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/entity.o": ../../mod-code/Single-Player\ Source/cl_dll/entity.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/entity.cpp" -o "../../mod-code/Single-Player Source/cl_dll/entity.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/ev_common.o": ../../mod-code/Single-Player\ Source/cl_dll/ev_common.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/ev_common.cpp" -o "../../mod-code/Single-Player Source/cl_dll/ev_common.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/ev_hldm.o": ../../mod-code/Single-Player\ Source/cl_dll/ev_hldm.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/ev_hldm.cpp" -o "../../mod-code/Single-Player Source/cl_dll/ev_hldm.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/events.o": ../../mod-code/Single-Player\ Source/cl_dll/events.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/events.cpp" -o "../../mod-code/Single-Player Source/cl_dll/events.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/flashlight.o": ../../mod-code/Single-Player\ Source/cl_dll/flashlight.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/flashlight.cpp" -o "../../mod-code/Single-Player Source/cl_dll/flashlight.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/GameStudioModelRenderer.o": ../../mod-code/Single-Player\ Source/cl_dll/GameStudioModelRenderer.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/GameStudioModelRenderer.cpp" -o "../../mod-code/Single-Player Source/cl_dll/GameStudioModelRenderer.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/GameStudioModelRenderer_Sample.o": ../../mod-code/Single-Player\ Source/cl_dll/GameStudioModelRenderer_Sample.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/GameStudioModelRenderer_Sample.cpp" -o "../../mod-code/Single-Player Source/cl_dll/GameStudioModelRenderer_Sample.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/geiger.o": ../../mod-code/Single-Player\ Source/cl_dll/geiger.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/geiger.cpp" -o "../../mod-code/Single-Player Source/cl_dll/geiger.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/health.o": ../../mod-code/Single-Player\ Source/cl_dll/health.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/health.cpp" -o "../../mod-code/Single-Player Source/cl_dll/health.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/hud.o": ../../mod-code/Single-Player\ Source/cl_dll/hud.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/hud.cpp" -o "../../mod-code/Single-Player Source/cl_dll/hud.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/hud_msg.o": ../../mod-code/Single-Player\ Source/cl_dll/hud_msg.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/hud_msg.cpp" -o "../../mod-code/Single-Player Source/cl_dll/hud_msg.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/hud_redraw.o": ../../mod-code/Single-Player\ Source/cl_dll/hud_redraw.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/hud_redraw.cpp" -o "../../mod-code/Single-Player Source/cl_dll/hud_redraw.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/hud_servers.o": ../../mod-code/Single-Player\ Source/cl_dll/hud_servers.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/hud_servers.cpp" -o "../../mod-code/Single-Player Source/cl_dll/hud_servers.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/hud_spectator.o": ../../mod-code/Single-Player\ Source/cl_dll/hud_spectator.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/hud_spectator.cpp" -o "../../mod-code/Single-Player Source/cl_dll/hud_spectator.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/hud_update.o": ../../mod-code/Single-Player\ Source/cl_dll/hud_update.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/hud_update.cpp" -o "../../mod-code/Single-Player Source/cl_dll/hud_update.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/in_camera.o": ../../mod-code/Single-Player\ Source/cl_dll/in_camera.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/in_camera.cpp" -o "../../mod-code/Single-Player Source/cl_dll/in_camera.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/input.o": ../../mod-code/Single-Player\ Source/cl_dll/input.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/input.cpp" -o "../../mod-code/Single-Player Source/cl_dll/input.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/inputw32.o": ../../mod-code/Single-Player\ Source/cl_dll/inputw32.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/inputw32.cpp" -o "../../mod-code/Single-Player Source/cl_dll/inputw32.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/menu.o": ../../mod-code/Single-Player\ Source/cl_dll/menu.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/menu.cpp" -o "../../mod-code/Single-Player Source/cl_dll/menu.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/message.o": ../../mod-code/Single-Player\ Source/cl_dll/message.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/message.cpp" -o "../../mod-code/Single-Player Source/cl_dll/message.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/overview.o": ../../mod-code/Single-Player\ Source/cl_dll/overview.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/overview.cpp" -o "../../mod-code/Single-Player Source/cl_dll/overview.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/parsemsg.o": ../../mod-code/Single-Player\ Source/cl_dll/parsemsg.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/parsemsg.cpp" -o "../../mod-code/Single-Player Source/cl_dll/parsemsg.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/saytext.o": ../../mod-code/Single-Player\ Source/cl_dll/saytext.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/saytext.cpp" -o "../../mod-code/Single-Player Source/cl_dll/saytext.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/scoreboard.o": ../../mod-code/Single-Player\ Source/cl_dll/scoreboard.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/scoreboard.cpp" -o "../../mod-code/Single-Player Source/cl_dll/scoreboard.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/soundsystem.o": ../../mod-code/Single-Player\ Source/cl_dll/soundsystem.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/soundsystem.cpp" -o "../../mod-code/Single-Player Source/cl_dll/soundsystem.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/status_icons.o": ../../mod-code/Single-Player\ Source/cl_dll/status_icons.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/status_icons.cpp" -o "../../mod-code/Single-Player Source/cl_dll/status_icons.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/statusbar.o": ../../mod-code/Single-Player\ Source/cl_dll/statusbar.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/statusbar.cpp" -o "../../mod-code/Single-Player Source/cl_dll/statusbar.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/studio_util.o": ../../mod-code/Single-Player\ Source/cl_dll/studio_util.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/studio_util.cpp" -o "../../mod-code/Single-Player Source/cl_dll/studio_util.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/StudioModelRenderer.o": ../../mod-code/Single-Player\ Source/cl_dll/StudioModelRenderer.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/StudioModelRenderer.cpp" -o "../../mod-code/Single-Player Source/cl_dll/StudioModelRenderer.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/text_message.o": ../../mod-code/Single-Player\ Source/cl_dll/text_message.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/text_message.cpp" -o "../../mod-code/Single-Player Source/cl_dll/text_message.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/train.o": ../../mod-code/Single-Player\ Source/cl_dll/train.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/train.cpp" -o "../../mod-code/Single-Player Source/cl_dll/train.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/tri.o": ../../mod-code/Single-Player\ Source/cl_dll/tri.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/tri.cpp" -o "../../mod-code/Single-Player Source/cl_dll/tri.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/util.o": ../../mod-code/Single-Player\ Source/cl_dll/util.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/util.cpp" -o "../../mod-code/Single-Player Source/cl_dll/util.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/vgui_ClassMenu.o": ../../mod-code/Single-Player\ Source/cl_dll/vgui_ClassMenu.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/vgui_ClassMenu.cpp" -o "../../mod-code/Single-Player Source/cl_dll/vgui_ClassMenu.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/vgui_ConsolePanel.o": ../../mod-code/Single-Player\ Source/cl_dll/vgui_ConsolePanel.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/vgui_ConsolePanel.cpp" -o "../../mod-code/Single-Player Source/cl_dll/vgui_ConsolePanel.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/vgui_ControlConfigPanel.o": ../../mod-code/Single-Player\ Source/cl_dll/vgui_ControlConfigPanel.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/vgui_ControlConfigPanel.cpp" -o "../../mod-code/Single-Player Source/cl_dll/vgui_ControlConfigPanel.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/vgui_CustomObjects.o": ../../mod-code/Single-Player\ Source/cl_dll/vgui_CustomObjects.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/vgui_CustomObjects.cpp" -o "../../mod-code/Single-Player Source/cl_dll/vgui_CustomObjects.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/vgui_int.o": ../../mod-code/Single-Player\ Source/cl_dll/vgui_int.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/vgui_int.cpp" -o "../../mod-code/Single-Player Source/cl_dll/vgui_int.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/vgui_MOTDWindow.o": ../../mod-code/Single-Player\ Source/cl_dll/vgui_MOTDWindow.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/vgui_MOTDWindow.cpp" -o "../../mod-code/Single-Player Source/cl_dll/vgui_MOTDWindow.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/vgui_SchemeManager.o": ../../mod-code/Single-Player\ Source/cl_dll/vgui_SchemeManager.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/vgui_SchemeManager.cpp" -o "../../mod-code/Single-Player Source/cl_dll/vgui_SchemeManager.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/vgui_ScorePanel.o": ../../mod-code/Single-Player\ Source/cl_dll/vgui_ScorePanel.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/vgui_ScorePanel.cpp" -o "../../mod-code/Single-Player Source/cl_dll/vgui_ScorePanel.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/vgui_ServerBrowser.o": ../../mod-code/Single-Player\ Source/cl_dll/vgui_ServerBrowser.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/vgui_ServerBrowser.cpp" -o "../../mod-code/Single-Player Source/cl_dll/vgui_ServerBrowser.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/vgui_SpectatorPanel.o": ../../mod-code/Single-Player\ Source/cl_dll/vgui_SpectatorPanel.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/vgui_SpectatorPanel.cpp" -o "../../mod-code/Single-Player Source/cl_dll/vgui_SpectatorPanel.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/vgui_TeamFortressViewport.o": ../../mod-code/Single-Player\ Source/cl_dll/vgui_TeamFortressViewport.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/vgui_TeamFortressViewport.cpp" -o "../../mod-code/Single-Player Source/cl_dll/vgui_TeamFortressViewport.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/vgui_teammenu.o": ../../mod-code/Single-Player\ Source/cl_dll/vgui_teammenu.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/vgui_teammenu.cpp" -o "../../mod-code/Single-Player Source/cl_dll/vgui_teammenu.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/view.o": ../../mod-code/Single-Player\ Source/cl_dll/view.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/view.cpp" -o "../../mod-code/Single-Player Source/cl_dll/view.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/hl/hl_weapons.o": ../../mod-code/Single-Player\ Source/cl_dll/hl/hl_weapons.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/hl/hl_weapons.cpp" -o "../../mod-code/Single-Player Source/cl_dll/hl/hl_weapons.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/hl/hl_baseentity.o": ../../mod-code/Single-Player\ Source/cl_dll/hl/hl_baseentity.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/hl/hl_baseentity.cpp" -o "../../mod-code/Single-Player Source/cl_dll/hl/hl_baseentity.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/hl/hl_events.o": ../../mod-code/Single-Player\ Source/cl_dll/hl/hl_events.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/hl/hl_events.cpp" -o "../../mod-code/Single-Player Source/cl_dll/hl/hl_events.o" $(CXXFLAGS)
"../../mod-code/Single-Player\ Source/cl_dll/hl/hl_objects.o": ../../mod-code/Single-Player\ Source/cl_dll/hl/hl_objects.cpp
$(CPP) -c "../../mod-code/Single-Player Source/cl_dll/hl/hl_objects.cpp" -o "../../mod-code/Single-Player Source/cl_dll/hl/hl_objects.o" $(CXXFLAGS)

How can I fix this as well? This is the contents of this makefile:

# Project: HPB_bot
# Makefile created by Dev-C++ 4.9.9.2
CPP = g++.exe
CC = gcc.exe
WINDRES = windres.exe
RES =
OBJ = ../../Bot-code/HPB_bot/floyd.o ../../Bot-code/HPB_bot/exports.o ../../Bot-code/HPB_bot/dlls/bot.o ../../Bot-code/HPB_bot/dlls/bot_chat.o ../../Bot-code/HPB_bot/dlls/bot_client.o ../../Bot-code/HPB_bot/dlls/bot_combat.o ../../Bot-code/HPB_bot/dlls/bot_models.o ../../Bot-code/HPB_bot/dlls/bot_navigate.o ../../Bot-code/HPB_bot/dlls/bot_start.o ../../Bot-code/HPB_bot/dlls/dll.o ../../Bot-code/HPB_bot/dlls/engine.o ../../Bot-code/HPB_bot/dlls/h_export.o ../../Bot-code/HPB_bot/dlls/linkfunc.o ../../Bot-code/HPB_bot/dlls/namefunc.o ../../Bot-code/HPB_bot/dlls/util.o ../../Bot-code/HPB_bot/dlls/waypoint.o $(RES)
LINKOBJ = ../../Bot-code/HPB_bot/floyd.o ../../Bot-code/HPB_bot/exports.o ../../Bot-code/HPB_bot/dlls/bot.o ../../Bot-code/HPB_bot/dlls/bot_chat.o ../../Bot-code/HPB_bot/dlls/bot_client.o ../../Bot-code/HPB_bot/dlls/bot_combat.o ../../Bot-code/HPB_bot/dlls/bot_models.o ../../Bot-code/HPB_bot/dlls/bot_navigate.o ../../Bot-code/HPB_bot/dlls/bot_start.o ../../Bot-code/HPB_bot/dlls/dll.o ../../Bot-code/HPB_bot/dlls/engine.o ../../Bot-code/HPB_bot/dlls/h_export.o ../../Bot-code/HPB_bot/dlls/linkfunc.o ../../Bot-code/HPB_bot/dlls/namefunc.o ../../Bot-code/HPB_bot/dlls/util.o ../../Bot-code/HPB_bot/dlls/waypoint.o $(RES)
LIBS = -L"E:/Dev-Cpp/lib" --no-export-all-symbols --add-stdcall-alias
INCS = -I"E:/Dev-Cpp/include"
CXXINCS = -I"E:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"E:/Dev-Cpp/include/c++/3.4.2/backward" -I"E:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"E:/Dev-Cpp/include/c++/3.4.2" -I"E:/Dev-Cpp/include"
BIN = HPB_bot.dll
CXXFLAGS = $(CXXINCS) -DBUILDING_DLL=1
CFLAGS = $(INCS) -DBUILDING_DLL=1
RM = rm -f
.PHONY: all all-before all-after clean clean-custom
all: all-before HPB_bot.dll all-after

clean: clean-custom
${RM} $(OBJ) $(BIN)
DLLWRAP=dllwrap.exe
DEFFILE=libHPB_bot.def
STATICLIB=libHPB_bot.a
$(BIN): $(LINKOBJ)
$(DLLWRAP) --output-def $(DEFFILE) --driver-name c++ --implib $(STATICLIB) $(LINKOBJ) $(LIBS) -o $(BIN)
../../Bot-code/HPB_bot/floyd.o: ../../Bot-code/HPB_bot/floyd.c
$(CPP) -c ../../Bot-code/HPB_bot/floyd.c -o ../../Bot-code/HPB_bot/floyd.o $(CXXFLAGS)
../../Bot-code/HPB_bot/exports.o: ../../Bot-code/HPB_bot/exports.c
$(CPP) -c ../../Bot-code/HPB_bot/exports.c -o ../../Bot-code/HPB_bot/exports.o $(CXXFLAGS)
../../Bot-code/HPB_bot/dlls/bot.o: ../../Bot-code/HPB_bot/dlls/bot.cpp
$(CPP) -c ../../Bot-code/HPB_bot/dlls/bot.cpp -o ../../Bot-code/HPB_bot/dlls/bot.o $(CXXFLAGS)
../../Bot-code/HPB_bot/dlls/bot_chat.o: ../../Bot-code/HPB_bot/dlls/bot_chat.cpp
$(CPP) -c ../../Bot-code/HPB_bot/dlls/bot_chat.cpp -o ../../Bot-code/HPB_bot/dlls/bot_chat.o $(CXXFLAGS)
../../Bot-code/HPB_bot/dlls/bot_client.o: ../../Bot-code/HPB_bot/dlls/bot_client.cpp
$(CPP) -c ../../Bot-code/HPB_bot/dlls/bot_client.cpp -o ../../Bot-code/HPB_bot/dlls/bot_client.o $(CXXFLAGS)
../../Bot-code/HPB_bot/dlls/bot_combat.o: ../../Bot-code/HPB_bot/dlls/bot_combat.cpp
$(CPP) -c ../../Bot-code/HPB_bot/dlls/bot_combat.cpp -o ../../Bot-code/HPB_bot/dlls/bot_combat.o $(CXXFLAGS)
../../Bot-code/HPB_bot/dlls/bot_models.o: ../../Bot-code/HPB_bot/dlls/bot_models.cpp
$(CPP) -c ../../Bot-code/HPB_bot/dlls/bot_models.cpp -o ../../Bot-code/HPB_bot/dlls/bot_models.o $(CXXFLAGS)
../../Bot-code/HPB_bot/dlls/bot_navigate.o: ../../Bot-code/HPB_bot/dlls/bot_navigate.cpp
$(CPP) -c ../../Bot-code/HPB_bot/dlls/bot_navigate.cpp -o ../../Bot-code/HPB_bot/dlls/bot_navigate.o $(CXXFLAGS)
../../Bot-code/HPB_bot/dlls/bot_start.o: ../../Bot-code/HPB_bot/dlls/bot_start.cpp
$(CPP) -c ../../Bot-code/HPB_bot/dlls/bot_start.cpp -o ../../Bot-code/HPB_bot/dlls/bot_start.o $(CXXFLAGS)
../../Bot-code/HPB_bot/dlls/dll.o: ../../Bot-code/HPB_bot/dlls/dll.cpp
$(CPP) -c ../../Bot-code/HPB_bot/dlls/dll.cpp -o ../../Bot-code/HPB_bot/dlls/dll.o $(CXXFLAGS)
../../Bot-code/HPB_bot/dlls/engine.o: ../../Bot-code/HPB_bot/dlls/engine.cpp
$(CPP) -c ../../Bot-code/HPB_bot/dlls/engine.cpp -o ../../Bot-code/HPB_bot/dlls/engine.o $(CXXFLAGS)
../../Bot-code/HPB_bot/dlls/h_export.o: ../../Bot-code/HPB_bot/dlls/h_export.cpp
$(CPP) -c ../../Bot-code/HPB_bot/dlls/h_export.cpp -o ../../Bot-code/HPB_bot/dlls/h_export.o $(CXXFLAGS)
../../Bot-code/HPB_bot/dlls/linkfunc.o: ../../Bot-code/HPB_bot/dlls/linkfunc.cpp
$(CPP) -c ../../Bot-code/HPB_bot/dlls/linkfunc.cpp -o ../../Bot-code/HPB_bot/dlls/linkfunc.o $(CXXFLAGS)
../../Bot-code/HPB_bot/dlls/namefunc.o: ../../Bot-code/HPB_bot/dlls/namefunc.cpp
$(CPP) -c ../../Bot-code/HPB_bot/dlls/namefunc.cpp -o ../../Bot-code/HPB_bot/dlls/namefunc.o $(CXXFLAGS)
../../Bot-code/HPB_bot/dlls/util.o: ../../Bot-code/HPB_bot/dlls/util.cpp
$(CPP) -c ../../Bot-code/HPB_bot/dlls/util.cpp -o ../../Bot-code/HPB_bot/dlls/util.o $(CXXFLAGS)
../../Bot-code/HPB_bot/dlls/waypoint.o: ../../Bot-code/HPB_bot/dlls/waypoint.cpp
$(CPP) -c ../../Bot-code/HPB_bot/dlls/waypoint.cpp -o ../../Bot-code/HPB_bot/dlls/waypoint.o $(CXXFLAGS)

botman
15-03-2005, 16:14
I believe the '\' character at the end of a line, MUST be followed by a TAB character at the start of the next line. For example, this...

OBJ = "../../mod-code/Single-Player\ Source/cl_dll/ammo.o" "../../mod-code/Single-Player\ Source/cl_dll/ammo_secondary.o"

...would become this (with TABs shown as _TAB_)...

OBJ = "../../mod-code/Single-Player\ _TAB_Source/cl_dll/ammo.o" "../../mod-code/Single-Player\ _TAB_Source/cl_dll/ammo_secondary.o"

...and they must be TAB characters (ASCII 9), not spaces.

botman

Beasty
16-03-2005, 06:45
Sorry, but they are in the same line. The line doesn't fit into one line of the reply.

botman
16-03-2005, 16:49
The backslash should ONLY occur as the last character of a line that is being broken between 2 lines.

If this...

OBJ = "../../mod-code/Single-Player\ _TAB_Source/cl_dll/ammo.o"

...is all on one line, then it should actually be this...

OBJ = "../../mod-code/Single-PlayerSource/cl_dll/ammo.o"

(assuming that your directory is "Single-PlayerSouce" and not "Single-Player Source").

botman

Pierre-Marie Baty
16-03-2005, 22:07
When a path is between quotes, you do NOT need to prefix spaces with a backslash.

Examples:

OBJ=../../mod-code/Single-Player\ Source/cl_dll/ammo.o (right)
OBJ="../../mod-code/Single-Player Source/cl_dll/ammo.o" (right)
OBJ=../../mod-code/Single-Player Source/cl_dll/ammo.o (wrong)
OBJ="../../mod-code/Single-Player\ Source/cl_dll/ammo.o" (wrong)

Beasty
17-03-2005, 11:07
Thanks!

Beasty
19-03-2005, 01:54
I have updated my Dev C++ to version 4.9.9.2 and now I get this error when compiling the client.dll:

E:\Dev-Cpp\projects\Makefile.win [Build Error] No rule to make target `"../../mod-code/Single-Player', needed by `client.dll'. Stop.

Note that this error is in one line. And I get these errors when compiling the HPB_bot:

102 E:\Bot-code\HPB_bot\floyd.c `main' must return `int'
E:\Bot-code\HPB_bot\floyd.c In function `int main(...)':
139 E:\Bot-code\HPB_bot\floyd.c `atoi' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
E:\Dev-Cpp\projects\Makefile.win [Build Error] [../../Bot-code/HPB_bot/floyd.o] Error 1

Each of these errors are in one line as well. Thanks for the help!

Whistler
19-03-2005, 07:45
the floyd.c (as well as exports.c) isn't part of HPB bot so remove it from the project

Beasty
20-03-2005, 05:52
I have but now I get these errors:

9 E:\Bot-code\HPB_bot\dlls\Bot-code\HPB_bot\dlls\bot.cpp In file included from ../../Bot-code/HPB_bot/dlls/extdll.h:82, from ../../Bot-code/HPB_bot/dlls/bot.cpp

9 E:\Bot-code\HPB_bot\dlls\bot.cpp from ../../Bot-code/HPB_bot/dlls/bot.cpp

112:7 E:\Bot-code\HPB_bot\dlls\vector.h [Warning] no newline at end of file

9 E:\Bot-code\HPB_bot\dlls\bot.cpp In file included from ../../Bot-code/HPB_bot/dlls/bot.cpp

88 E:\Bot-code\HPB_bot\dlls\extdll.h const.h: No such file or directory.

And so on. Here's the last two messages:
[General Error] Too many messages; abort.
There must be something terribly wrong with your code. Please fix it.

And what about the client.dll? :(

Beasty
21-03-2005, 01:16
For the HPB_bot project, I included every file in every folder except for floyd.c and exports.c, including everything inside bot_logo folder. And for the client project I included everything in the cl_dll folder and hl folder inside it. Has anyone made a patch for the HPB_bot source code that makes it compile under Dev C++. And Whistler, you have Dev C++ installed, don't you? Why don't you try compiling the client.dll? I've extracted your patch files to my Single-Player Source directory so it can't be that.

Whistler
21-03-2005, 01:34
here is the Dev-C++/MinGW version of HPB bot Template source code:
http://filebase.bots-united.com/index.php?action=file&id=225

also I've uploaded the SDK with Dev-C++ project file for client dll, just redownload it

Note that the MinGW version comes with Dev-C++ won't compile HL mods or bots correctly (it will crash when starting games). The solution is delete "lib" and "include" folder in Dev-C++ folder, and then install this version of MinGW to the Dev-C++ folder and it will be okay:
http://prdownloads.sourceforge.net/mingw/MinGW-3.1.0-1.exe?download
(after that there will be an error message in the first time starting Dev-C++, just ignore it)

Beasty
21-03-2005, 02:10
Thanks! It worked! :) Is the template all I need to compile the HPB_bot dll? Or do I have to compile the contents of the hpb_bot_plugin folder? The error that comes up, do I just click no? And how can I change the name of the dll? Do I have to create a new project with the name? Thanks a lot, Whistler!!! :D

Pierre-Marie Baty
21-03-2005, 03:10
Such questions would rather belong to the coding forum, not the HPB_bot forum. To change the name of the DLL, set it in the Makefile.

Whistler
21-03-2005, 03:51
if you are using Dev-C++, you can change the dll filename in Project->Project Options->Build Options->Override output filename

the Template source code will build a playable HPB_bot.dll file (non-metamod version), but it won't support waypoints.

edit:
I've also made HPB bot 3.0 source code (full non-metamod version with waypoint support) buildable with MinGW/Dev-C++, so if you need it:
http://filebase.bots-united.com/index.php?action=file&id=286

Beasty
27-03-2005, 08:36
Sorry for this really late reply! I was on a short holiday. Anyway, I get this error when starting a game:

*****
Can't load 'E:\SIERRA\Half-Life/MY_MOD\cl_dlls\NoVGUI.dll'
*****

Is there a way to turn VGUI on for my mods?

Whistler
27-03-2005, 12:08
copy the NoVGUI.dll (which is included with botman's SDK patch in cl_dll folder) to your Half-Life\valve\cl_dlls folder and it should be okay.

also you can't use the VGUI scoreboard with MinGW

Beasty
28-03-2005, 03:43
Alright, thanks! I'm a bit curious about this VGUI stuff. Is the VGUI scoreboard the scoreboard when you hold tab in a multiplayer game? And why can't you use it in MinGW?

Pierre-Marie Baty
28-03-2005, 05:43
Yes, it's that one, and it can't compile on MinGW because the code uses Microsoft-specific parts (I suppose it's some MSVC assembly) that have not been "translated" to GCC style yet.

botman
28-03-2005, 16:42
The problem with using VGUI is that all you have is vgui.lib which was compiled with the MSVC compiler using MSVC C++ linkage. There isn't any other compiler or linker than can handle the Microsoft method of name mangling in C++, so you are stuck using only the source code that you can compile (which is the SDK).

If Valve had created a COFF version of the VGUI library, you would be able to link against it with other compilers/linkers, but they didn't, so you can't.

botman

Pierre-Marie Baty
29-03-2005, 02:04
wrapper DLL ? :)

Beasty
29-03-2005, 09:23
Oh, alright! So does the scoreboard display a sort of list in the center when you hold down tab instead? And what is wrapper.dll?

Pierre-Marie Baty
29-03-2005, 09:48
yes, it's the old style scoreboard. The wrapper DLL was just an idea... a workaround, sort of. But it's meaningful to coders only :)

botman
29-03-2005, 17:10
The NoVGUI.dll is essentially a wrapper DLL (that only wraps one function necessary to initialize the client display). In order to do a wrapper DLL, you'd have to use MSVC to build it (since MSVC is the only one that can handle VGUI.lib) and export all the functions with standard C linkage (plain non-mangled names). This would destroy the C++ aspect of the VGUI library (since you don't have classes with standard C). Destroying the C++ aspect of the VGUI library would make it kind of pointless as a mod feature since it would be difficult to create new (custom) VGUI windows.

It might be easier just to create your own VGUI library and re-implement all the work that Valve put into the VGUI library (there are MANY Linux GUI libraries that you could start from that are open source), but this would take quite a lot of work and wasn't worth it in my opinion.

And it's worth even less now that you can download the MSVC command line environment (.net 2005 beta) for free. If you don't want to compile using Microsoft's tools, because you don't like Microsoft, just keep in mind who's operating system you are running the game on anyway. :)

botman

Whistler
30-03-2005, 10:53
And it's worth even less now that you can download the MSVC command line environment (.net 2005 beta) for free. If you don't want to compile using Microsoft's tools, because you don't like Microsoft, just keep in mind who's operating system you are running the game on anyway. :)

botman

I don't think M$ will let you distribute your dll compiled with VS.net 2005 anyway, and it also don't run in Windows 98

there is also a clause says it's time limited in somewhere in EULA

Beasty
30-03-2005, 12:39
Is the MS Command-line like the compiler for MSVC++? And I actually love Microsoft but the only reason I didn't buy MSVC++ yet, is because it's quite expensive and I want to learn some C++ first. ;)

Beasty
30-03-2005, 12:39
Is the MS Command-line like the compiler for MSVC++? And I actually love Microsoft but the only reason I didn't buy MSVC++ yet, is because it's quite expensive and I want to learn some C++ first. ;) And has anyone made a patch for the multiplayer SDK?


----
EDIT: I don't know how this posted 2 of my replys.

Whistler
30-03-2005, 13:03
that "command line compiler" is the same compiler as MSVC.net 2003, but you have to write Makefiles (NOT the same as GNU Make) yourself.

Beasty
31-03-2005, 12:33
Thanks! I'll stick with GNU for now. Writing my own makefiles seems complex!

Beasty
03-04-2005, 05:02
Has anyone made a multiplayer patch because I want to create a multiplayer mod?

Whistler
03-04-2005, 09:58
I think multiplayer code is also included with the singleplayer SDK, so you can also make a multiplayer mod with it

Beasty
03-04-2005, 12:47
So does that mean I can create a Single-Player and Multiplayer mod by just using the contents of the Single-Player Source code?

Whistler
03-04-2005, 14:06
You also need to download the full version of Half-Life SDK 2.3 (which contains tools to make maps, models, etc. and lots of sample data files)

But the code in the single player SDK is all that you need to create the coding part of any kind of MODs. Of course there is also a multiplayer SDK which has all SP code removed, but the SP code is actually okay to create MP MODs as I said.

Pierre-Marie Baty
03-04-2005, 17:13
singleplayer = multiplayer + additional parts

What can big, can small

Beasty
08-04-2005, 03:19
What if I wanted to create a multiplayer only mod? I wouldn't need the AI code, would I?

Whistler
08-04-2005, 12:14
you can make a "multiplayer SDK" yourself by deleting some files from the SP SDK. Here's a hint: if the copyright notice of a file says "This file contains proprietary and confidential information of Valve" or something then it's a SP only file, just delete it. and if it's "this file can only be used for non-commercial purpose" it's a common file

Beasty
09-04-2005, 03:29
Cool thanks! Do I just delete the SP stuff or the common stuff as well?

Whistler
09-04-2005, 10:57
the "common stuff" means parts used in both SP and MP part. if you deleted both of them you'll get no more code :)

Beasty
11-04-2005, 03:42
Thanks! So all I need is the common stuff? I hope GNU includes code later so that VGUI will be possible! ;)

Beasty
13-04-2005, 09:02
I made my MP patch by copying files from the SP folder into the MP folder, but only the ones that are common. ;) Anyway, does your patch make the DMC source code, Ricochet source code and all the source code under the utils folder compile under Dev C++?

Beasty
15-04-2005, 08:18
Could you, at least, Whistler tell me what code and how you changed it to compile in Dev C++? I know that different compilers compile slightly different codes.

Whistler
16-04-2005, 07:26
I don't think botman has made patches for DMC & Ricochet... but you can try to make it yourself by looking at the patches botman has made.

botman
17-04-2005, 00:35
Uh, yeah. And good luck with that! :)

botman

Beasty
19-04-2005, 04:39
Yeah, thanks for the support guys! After I finish, I'll have to definitely give credit to Whistler and Botman! ;)

Beasty
27-04-2005, 09:37
I get these errors when compiling world.cpp. Note that this is my multiplayer HL source code.

[Linker error] undefined reference to `CBaseMonster::Save(CSave&)'
[Linker error] undefined reference to `CBaseMonster::Restore(CRestore&)'
[Linker error] undefined reference to `CBaseMonster::KeyValue(KeyValueData_s*)'

And so on... They seem to be all about undefined references, but I haven't modified anything in world.cpp. Do you know what's the problem?

Whistler
27-04-2005, 09:59
it isn't because of world.cpp, but because one of the single player file isn't deleted.

Beasty
29-04-2005, 09:47
I've checked every file in the dll project but could not find any sp stuff. Are you sure it's that? :-/

Pierre-Marie Baty
29-04-2005, 11:33
You should have not tried to merge the multiplayer and singleplayer SDKs like what you did. If I were you, I'd start with a fresh singleplayer SDK. The singleplayer SDK contains ALL the features from the multiplayer one, PLUS the monster code. If you don't need it, don't care about it, but if you need some parts of the single player code, start with the SP SDK instead of trying to merge it into the MP one.

Beasty
30-04-2005, 03:42
Alright, thanks! ;)

Beasty
01-05-2005, 08:47
What is the HL SDK patch in the metamod website? Is it a patch for MinGW? If it is does it support VGUI and should I use it?

Whistler
01-05-2005, 09:33
http://metamod.sourceforge.net/files/sdk/metamod.hlsdk-2.3.txt

Beasty
02-05-2005, 01:33
Cool thanks!