![]() |
command line compile
|
Re: command line compile
You need to make a MAKE file.
And pass that to the command line compile. MCVS can export its make file. If you don';t have that then you'll need to make your own make file. Im don't know how to do that yet. im using the msvc visual version so i get the make file which msvc makes it self . I only know how to do my linux make file. And i asume that's not compatible with msvc. |
Re: command line compile
You're not forced to make a Makefile... you can compile from the command line if you know what you are doing.
For example, a command-line compile and linking can look like this: Quote:
|
Re: command line compile
so what do i do with this makefile?
ive setenv /2000 /RETAIL from dos prompt in: c:\program files\microsoft sdk> makefile is here: c:\program files\microsoft sdk\metamod-1.17> sorry im a total n00b!!! where can i find the commands to use? do i use them from c:\program files\microsoft sdk> or does the dir matter? EDIT: ok wow! quick one pmb! this should help a bit. Is there a good online resource for command line compiler (.net framework)? msdn is very difficult to find compiler help. It says that the command line compiler is well documented, it probably is but i cannot find the dox!?! |
Re: command line compile
so i just got msvc 6 se (off a friend of a friend who took a class in college). I get this error:
engine_api.cpp(386) : error C2440: '=' : cannot convert from 'void (__cdecl *)(void *,char *,...)' to 'void (__cdecl *)(struct _iobuf *,char *,...)' This conversion requires a reinterpret_cast, a C-style cast or function-style cast what didnt i do right, im still getting used to this program. |
Re: command line compile
well for starters it would help if you posted what was contained on line 386 of engine_api.cpp...
|
Re: command line compile
i suppose you're right
META_ENGINE_HANDLE_void_varargs(FN_ENGINEFPRINTF, pfnEngineFprintf, pfile, szFmt); from void mm_EngineFprintf(FILE *pfile, char *szFmt, ...) { META_ENGINE_HANDLE_void_varargs(FN_ENGINEFPRINTF, pfnEngineFprintf, pfile, szFmt); RETURN_API_void() } |
Re: command line compile
Change...
Code:
void mm_EngineFprintf(FILE *pfile, char *szFmt, ...) Code:
void mm_EngineFprintf((struct _iobuf *)pfile, char *szFmt, ...) botman |
Re: command line compile
That's what I think too. Metamod must be detecting what type of compiler it's being compiled on, and yours must not be caught in the list. You'd perhaps better have a look at where it's done.
|
Re: command line compile
/* Define __cdecl for non-Microsoft compilers */
could this be it? (from: stdio.h) I am using a microsoft compiler though: msvc 6 se |
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 |
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 |
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. |
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]? |
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" |
Re: command line compile
Code:
void *mm_PvAllocEntPrivateData(edict_t *pEdict, int cb) { line of error: Code:
META_ENGINE_HANDLE(void *, NULL, FN_PVALLOCENTPRIVATEDATA, pfnPvAllocEntPrivateData, (pEdict, cb)); 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. |
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 |
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...
|
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 |
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.
|
Re: command line compile
will it work if i just use the sdk and metamod parts, excluding the bot source?
|
Re: command line compile
if I want to learn the sdk. I mean only what is needed to learn about it for making a bot, is the podbot sdk fine for me?
MusicMan |
Re: command line compile
Of course...
You've got the full metamod source code and the full multiplayer SDK (although you haven't the single player one). This is enough to develop any metamod plugin you want, or even to develop a new multiplayer MOD if you want. :) |
Re: command line compile
ok, thanks alot PMB;)
MusicMan |
Re: command line compile
*g* PMB you know that we now have two starter kit's in the filebase:
http://filebase.bots-united.com/pafi...ion=file&id=13 and http://filebase.bots-united.com/pafi...ion=file&id=40 who will get the most downloads *g* |
Re: command line compile
Had this same issue, it was a mismatch between code using SDK 1990 and the newer base SDK p-3. In my case the supplied code containing an old Cbase.cpp was causing the problem.
|
All times are GMT +2. The time now is 04:44. |
Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.