VC++ 2005 Express Compiling Problem

R

Rocketcat

Guest
Hi,

With the latest update of the Source SDK, I thought I'd give it a try in VC++ 2005 Express. Starting with a fresh install of everything, I went and made some of the changes to environment settings found elsewhere and tried compiling a fresh HL2:MP mod. The server dll compiled with a couple minor warnings, but the client dll is giving me an error/30 warnings.

If anyone's interested, here's the list of warnings/errors:

------ Build started: Project: client_hl2mp, Configuration: Release HL2MP Win32 ------
Linking...
msvcrt.lib(MSVCR80.dll) : warning LNK4006: __malloc_crt already defined in memoverride.obj; second definition ignored
msvcrt.lib(MSVCR80.dll) : warning LNK4006: _free already defined in memoverride.obj; second definition ignored
tier2.lib(tier2.obj) : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/INCREMENTAL:NO' specification
LIBCMT.lib(strtol.obj) : warning LNK4006: _strtol already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(_wctype.obj) : warning LNK4006: _iswspace already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(stdexcpt.obj) : warning LNK4006: "public: __thiscall std::exception::exception(char const * const &)" (??0exception@std@@QAE@ABQBD@Z) already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(stdexcpt.obj) : warning LNK4006: "public: __thiscall std::exception::exception(class std::exception const &)" (??0exception@std@@QAE@ABV01@@Z) already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(stdexcpt.obj) : warning LNK4006: "public: virtual __thiscall std::exception::~exception(void)" (??1exception@std@@UAE@XZ) already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(stdexcpt.obj) : warning LNK4006: "public: virtual char const * __thiscall std::exception::what(void)const " (?what@exception@std@@UBEPBDXZ) already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(fpinit.obj) : warning LNK4006: __fltused already defined in a previous module; second definition ignored
LIBCMT.lib(fpinit.obj) : warning LNK4006: __ldused already defined in a previous module; second definition ignored
LIBCMT.lib(tidtable.obj) : warning LNK4006: __encode_pointer already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(tidtable.obj) : warning LNK4006: __encoded_null already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(tidtable.obj) : warning LNK4006: __decode_pointer already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(vsnprint.obj) : warning LNK4006: __vsnprintf already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(crt0dat.obj) : warning LNK4006: __amsg_exit already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(crt0dat.obj) : warning LNK4006: __initterm_e already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(mlock.obj) : warning LNK4006: __unlock already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(mlock.obj) : warning LNK4006: __lock already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(winxfltr.obj) : warning LNK4006: ___CppXcptFilter already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(atox.obj) : warning LNK4006: _atoi already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(printf.obj) : warning LNK4006: _printf already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(crt0init.obj) : warning LNK4006: ___xi_a already defined in msvcrt.lib(cinitexe.obj); second definition ignored
LIBCMT.lib(crt0init.obj) : warning LNK4006: ___xi_z already defined in msvcrt.lib(cinitexe.obj); second definition ignored
LIBCMT.lib(crt0init.obj) : warning LNK4006: ___xc_a already defined in msvcrt.lib(cinitexe.obj); second definition ignored
LIBCMT.lib(crt0init.obj) : warning LNK4006: ___xc_z already defined in msvcrt.lib(cinitexe.obj); second definition ignored
LIBCMT.lib(hooks.obj) : warning LNK4006: "void __cdecl terminate(void)" (?terminate@@YAXXZ) already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(_ctype.obj) : warning LNK4006: _isspace already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(_ctype.obj) : warning LNK4006: _isalnum already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LIBCMT.lib(_ctype.obj) : warning LNK4006: _iscntrl already defined in msvcrt.lib(MSVCR80.dll); second definition ignored
LINK : fatal error LNK1104: cannot open file 'libc.lib'
Build log was saved at "file://d:\Games\tmod\src\cl_dll\Release HL2MP\BuildLog.htm"
client_hl2mp - 1 error(s), 30 warning(s)
------ Build started: Project: server_hl2mp, Configuration: Release HL2MP Win32 ------
Linking...
choreoobjects.lib(choreoevent.obj) : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/INCREMENTAL:NO' specification
Creating library Release HL2MP/server.lib and object Release HL2MP/server.exp
LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
LINK : warning LNK4098: defaultlib 'LIBCMTD' conflicts with use of other libs; use /NODEFAULTLIB:library
choreoobjects.lib(choreoactor.obj) : warning LNK4204: 'd:\Games\tmod\src\dlls\Release HL2MP\vc80.pdb' is missing debugging information for referencing module; linking object as if no debug info
choreoobjects.lib(choreochannel.obj) : warning LNK4204: 'd:\Games\tmod\src\dlls\Release HL2MP\vc80.pdb' is missing debugging information for referencing module; linking object as if no debug info
choreoobjects.lib(choreoevent.obj) : warning LNK4204: 'd:\Games\tmod\src\dlls\Release HL2MP\vc80.pdb' is missing debugging information for referencing module; linking object as if no debug info
choreoobjects.lib(choreoscene.obj) : warning LNK4204: 'd:\Games\tmod\src\dlls\Release HL2MP\vc80.pdb' is missing debugging information for referencing module; linking object as if no debug info
Embedding manifest...
Copying to destination folder
1 file(s) copied.
1 file(s) copied.
Build log was saved at "file://d:\Games\tmod\src\dlls\Release HL2MP\BuildLog.htm"
server_hl2mp - 0 error(s), 7 warning(s)
========== Build: 1 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========



Basically, the warnings seem to be about redundant definitions, and the error is it can't load libc.lib. Now, everything I've read says that you need to have LIBCMT and LIBC in the Linker->Input->Ignore Specific Library and then it should be ignoring those. However I do have those included in the ignore list, but it seems like it's still trying to use them anyway. Everything should be set up correctly, and as a result I'm not sure what to do.

If anyone has any suggestions on how to resolve this, I'd really appreciate it. I really want to get down to the actual coding, but that's a bit hard if I can't even get it to compile the first time.
 
With 2005 Express you need to have downloaded and installed both the Microsoft DirectX SDK and the Microsoft Platform SDK.

http://msdn.microsoft.com/directx/sdk/
http://www.microsoft.com/downloads/...35-C656-4969-ACE8-E4C0C0716ADB&displaylang=en

When installing the Platform SDK, go here: http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx and follow steps 3 and 4; they are important!

Also do step 3 again but point to the DirectX SDK directories instead of the platform ones.


After all that you should be good to go... I still get a few warnings when I compile but both the Debug and Release binaries work fine.
 
Back
Top