.:: Bots United ::.

.:: Bots United ::. (http://forums.bots-united.com/index.php)
-   General Programming (http://forums.bots-united.com/forumdisplay.php?f=25)
-   -   command line compile (http://forums.bots-united.com/showthread.php?t=1285)

botman 12-04-2004 14:53

Re: command line compile
 
No, that's saying if you are *NOT* using a Microsoft compiler you need to define __cdecl.

__cdecl should already be defined in MSVC.

If you've modified ANY of the metamod source code, you should probably change it back to what it originally was (or just delete what you have now and re-install the metamod source). Compile the unmodified metamod source and post any errors you get here.

botman

dead bwoy 12-04-2004 19:25

Re: command line compile
 
do i need a service pack for msvc?

heres the new error with the default (metamod 1.17 from metamod.org) .dsw

D:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE\afxv_w32.h(14) : fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>
conf_meta.cpp

Lazy 12-04-2004 19:37

Re: command line compile
 
It's been a long time but you must move all of the half-life include directories in your listing to either the top or the bottom of the list and keep them together.

I cannot remember which since I do not use VS 6 anymore.

dead bwoy 12-04-2004 20:09

Re: command line compile
 
under project options i have:
/nologo /MT /W3 /GX /O2 /I "d:\program files\microsoft visual studio\vc98\include\sdk\multiplayer\common" /I "d:\program files\microsoft visual studio\vc98\include\sdk\multiplayer\engine" /I "d:\program files\microsoft visual studio\vc98\include\sdk\multiplayer\dlls" /I "d:\program files\microsoft visual studio\vc98\include\sdk\multiplayer\pm_shared" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "METAMOD_EXPORTS" /Fp"release/metamod.pch" /YX /Fo"release/" /Fd"release/" /FD /c

does the "/I" mean include?
what is the difference between [project/settings/c++ tab/Project Options] and [tools/options/directories]?

botman 13-04-2004 02:00

Re: command line compile
 
Yes, "/I" means "use this directory when searching for include files".

The Half-Life SDK includes a .h file called "util.h". There is also a "util.h" in the MSVC standard includes. What's probably happening is that the MSVC version of util.h is being included instead of the Half-Life SDK one.

Why did you install the Half-Life SDK in "program files\microsoft visual studio\vc98\include" anyway?

I would recommend you remove it from there and install it someplace separate (perhaps in "D:\Half-Life SDK"), then change your /I include list to look something like this...
Code:

/I "D:\Half-Life SDK\sdk\multiplayer\common"
/I "D:\Half-Life SDK\sdk\multiplayer\engine"
/I "D:\Half-Life SDK\sdk\multiplayer\dlls"
/I "D:\Half-Life SDK\sdk\multiplayer\pm_shared"
/I "D:\program files\microsoft visual studio\vc98\include"
/D "WIN32" /D "NDEBUG" /D "_WINDOWS"...

botman

dead bwoy 13-04-2004 08:01

Re: command line compile
 
Code:

void *mm_PvAllocEntPrivateData(edict_t *pEdict, int cb) {
META_ENGINE_HANDLE(void *, NULL, FN_PVALLOCENTPRIVATEDATA, pfnPvAllocEntPrivateData, (pEdict, cb));
RETURN_API()
}


line of error:
Code:

META_ENGINE_HANDLE(void *, NULL, FN_PVALLOCENTPRIVATEDATA, pfnPvAllocEntPrivateData, (pEdict, cb));
D:\Projects\metamod-1.17\metamod\engine_api.cpp(391) : error C2440: '=' : cannot convert from 'void *(__cdecl *)(struct edict_s *,__int32)' to 'void *(__cdecl *)(struct edict_s *,int)'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast

after downloading the sdk and metamod source from the new filebase.

botman 13-04-2004 15:18

Re: command line compile
 
It appears that the metamod .h files have __int32 defined as the 'int' type. Perhaps this was for Linux compatibility. Try searching the metamod .h files for '__int32' and replacing it with 'int'.

botman

dead bwoy 14-04-2004 00:51

Re: command line compile
 
i have searched the .h files and have not found __int32 yet. i have found plenty of "int"s. do you know which files i should check? I'll check again...

botman 14-04-2004 14:53

Re: command line compile
 
I saw this over on hlpd about error C2440...

http://dynamic5.gamespy.com/~hlpd/index.pl/Eiface.H

(scroll to the bottom of that page)

Value used 'long' in places where 'uint32' should have been used. The metamod code may have the same problems. See the changes that SavannahLion recommended as an example.

botman

Pierre-Marie Baty 14-04-2004 15:54

Re: command line compile
 
Else if you want to get yourself started with a SDK + metamod + bot kit that compiles straight out of the box, go to the filebase and download the "POD-bot SDK". I've packaged the Bots United SDK with the updated metamod source code that we use, and there's the pod-bot source code as well. ALL of them compile fine, straight out of the box, directly in Windows (MSVC 6) and Linux (GCC 2.95.3). You don't even need to adapt the include paths if you keep the directory structure.


All times are GMT +2. The time now is 02:48.

Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.