Talk:Compiling under VS2005: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
Line 165: Line 165:
===Other Fixes / Comments===
===Other Fixes / Comments===


thats as far as you get with [http://www.chatbear.com/board.plm?a=viewthread&t=104,1102070328,6443&b=4991&id=949052&v=flatold&s=0 this forumthreat]
got some info from [http://www.chatbear.com/board.plm?a=viewthread&t=104,1102070328,6443&b=4991&id=949052&v=flatold&s=0 this forumthreat]


i had some errors in c_rope
i had some errors in c_rope


fixed it with:
fixed it once with:


taking the closing "}" from ''( int iRenderCache = 0; iRenderCache < nRenderCacheCount; ++iRenderCache )''
taking the closing "}" from ''( int iRenderCache = 0; iRenderCache < nRenderCacheCount; ++iRenderCache )''
Line 176: Line 176:


(means from line 231 (i think) to line 252)
(means from line 231 (i think) to line 252)
other thing i did is, i added "int" in front of many "i" in for()'s (whatever it's called in eng *.*)


i'm still trying to complete this so it will compile, hope i could help anyone...
i'm still trying to complete this so it will compile, hope i could help anyone...


greetz
greetz
--[[User:Rotzi|by: Rotzi]] Jan 2006 (GMT+1)
 
*grml*...
[[User:Rotzi]] Jan 2006
 
 
grml...
 
doesn't work neither with express nor with full version... maybe i'm just stupid...
doesn't work neither with express nor with full version... maybe i'm just stupid...
I'll try again this weekend and update here...
I'll try again this weekend and update here...
--[[User:Rotzi|Created by: Rotzi]] Feb 2006 (GMT+1)
 
[[User:Rotzi]] Feb 2006
 
 
And still I'm having problems... Just tried it again, Release Client only, but did not get past 3 kinds of errors, wich all in all were 190 errors and 439 warnings...
 
I also noticed that including user32.lib and excluding LIBC did not change these error-numbers, so atleast up to that point, it did not need them... Still I'm only talking about client-Release Only.
 
[[User:Rotzi]]


----
----

Revision as of 08:32, 11 February 2006

How to Compile with Visual C++ 2005 Express

steps till being able to compile with V C++ 05 Express:

required:

  • MS DirectX SDK
  • MS Platform SDK

Tools - Options: Projects and Solutions - VC++ Directories

upper right select "executable files" and enter "...\Microsoft Platform SDK\Bin" (replace ... with your path of course)

"include files" --> "...\Microsoft Platform SDK\Include" and "...\Microsoft DirectX SDK (December 2005)\Include"

"libary files" --> "...\Microsoft Platform SDK\Lib" & "...\Microsoft DirectX SDK (December 2005)\Lib\x86"


dbg.h

add

#pragma warning(disable : 4996)

after #pragma once (new line) to disable old, unsecure functions warning.


now the actual error fixes:

All projects

Many, many instances of "error C2065: 'i' : undeclared identifier". This is where there is code like:

for(int i=0; i<XXX; i++)
{
    //do something
}

for( i=0; i<YYY; i++)
{
    //do something else
}

Change the first line to:

int i;
for( i=0; i<XXX; i++)
''etc.''

to fix these problems.


Release-Compile:

client:

..\public\vstdlib\strtools.h(90):

inline char*	Q_strrchr (const char *s, char c)					{ return strrchr( (char *)s, c ); }

..\public\vstdlib\strtools.h(93) zu

inline char*	Q_strstr( const char *s1, const char *search )		{ return strstr( (char *)s1, search ); }

..\cl_dll\hud_bitmapnumericdisplay.cpp(159)

if( bStart || digit > 0 || pos <= pow((float)10,numSigDigits-1) )

..\game_shared\baseentity_shared.cpp(251)

char *s = strchr( (char *)szKeyName, '#' );

..\tier1\KeyValues.cpp(800)

char *subStr = strchr((char *)keyName, '/');


undeclared variable (add "int i;" in front of it, as mentioned before)

..\cl_dll\interpolatedvar.h(538)

..\public\sentence.cpp(735)

..\public\sentence.cpp(1098)

..\public\sentence.cpp(1168)


Linking Errors & Fixes:

Added msvcrt.lib and user32.lib to Linker->Input->Additional Dependencies (seperated each with a space(" "))

Added LIBC to Linker->Input->Ignore specific library

Added /FORCE:MULTIPLE to Linker->Command Line->Additional Options



hl:

vguiscreen.cpp(69)

char *s = strchr( (char *)szKeyName, '#' );

TemplateEntities.cpp(298)

int iMax = pow((double)10, (int)(strlen(ENTITYIO_FIXUP_STRING)-1)); // -1 for the &


Linking Errors & Fixes:

Added user32.lib to Additional Dependencies under Linker->Input

Added /FORCE:MULTIPLE to Linker->Command Line->Additional Options



Debug-Compile:

client:

...\public\tier0\memoverride.cpp line 405-430

Remove "_base" from those functions. Looks then like that:

#if defined(_DEBUG) && _MSC_VER >= 1300
void __cdecl _aligned_free(
void *
);
void * __cdecl _aligned_malloc(
size_t,
size_t
);
void * __cdecl _aligned_malloc_base(
size_t size,
size_t align
)
{
return _aligned_malloc(size, align);
}

void __cdecl _aligned_free_base(
void *memblock
)
{
_aligned_free(memblock);
}
#endif[/quote]


Linking Errors & Fixes:

Added msvcrtd.lib and user32.lib Linker->Input->Additional Dependencies

Added /FORCE:MULTIPLE to Linker->Command Line->Additional Options


hl:

...\dlls\ai_behavior_follow.cpp(2090)

#ASSERT_INVARIANT( sizeof(FollowerListIter_t) == sizeof(AI_FollowManagerInfoHandle_t) );


Linking Errors & Fixes:

Added user32.lib to Linker->Input->Additional Dependencies

Added /FORCE:MULTIPLE to Linker->Command Line->Additional Options


Other Fixes / Comments

got some info from this forumthreat

i had some errors in c_rope

fixed it once with:

taking the closing "}" from ( int iRenderCache = 0; iRenderCache < nRenderCacheCount; ++iRenderCache )

behind ++m_aRenderCache[iRenderCache].m_nCacheCount;

(means from line 231 (i think) to line 252)

i'm still trying to complete this so it will compile, hope i could help anyone...

greetz

User:Rotzi Jan 2006


grml...

doesn't work neither with express nor with full version... maybe i'm just stupid...

I'll try again this weekend and update here...

User:Rotzi Feb 2006


And still I'm having problems... Just tried it again, Release Client only, but did not get past 3 kinds of errors, wich all in all were 190 errors and 439 warnings...

I also noticed that including user32.lib and excluding LIBC did not change these error-numbers, so atleast up to that point, it did not need them... Still I'm only talking about client-Release Only.

User:Rotzi


Misc

I'll be getting a copy of Visual Studio 2005 (not express) in the next couple of weeks. Is there a problem compiling on it too or does anybody know yet? --AndrewNeo 07:11, 28 Jan 2006 (PST)

No, what i read is there are no Problems with normal, full Version of VS 05. --Rotzi 4 Fe 2006 (GMT+1)


Force:Multiple error in release - client

How come i get the error like described in the threat, but it won't be fixed by adding "/FORCE:MULTIPLE", but caused by that instead... caused means, without it it doesn't get to that error, or doesn't have it...

msvcrt.lib(MSVCR80.dll) : error LNK2005: _free already defined in memoverride.obj (thats the error)

Added /FORCE:MULTIPLE to Linker->Command Line->Additional Options (and that should be the solution)