Compiling under VS2010: Difference between revisions
(Added a link to wiki page describing how to fix the missing weapon_sdkbase.cpp and .h compiling errors. It took me a second google search to find this fix when it should have just been put here.) |
m (Clarified location of spritemodel.cpp) |
||
Line 30: | Line 30: | ||
BIKMaterial_t m_hBIKMaterial;</source> | BIKMaterial_t m_hBIKMaterial;</source> | ||
Now open <code>spritemodel.cpp</code> and add the following: | Now open <code>spritemodel.cpp</code> (located in the same directory) and add the following: | ||
<source lang=cpp> | <source lang=cpp> |
Revision as of 08:22, 29 September 2011
Visual Studio 2010 is the best choice for Source. You can use the free C++ Express edition.

game\server\swarm_sdk_server.vcproj
with a text editor and delete "' $File
" from line 2232. [todo tested in ?]Debugging
- Follow the instructions for fixing debug compiles in VS2008, which apply here as well.
- Right click on the client and server projects in VS and go to Properties > Configuration Properties > General. Change Target Name to client and server respectively.
File Copying
There is a bug in VS 2010 which will sometimes prevent your newly-compiled DLLs from being copied to your mod directory. To fix it, right-click on the client and server projects in VS and select Properties. Change the Configuration drop-down menu at the top to All Configurations. Then, go to Configuration Properties > Custom Build Step and in the Additional Dependencies field, type in $(TargetPath).
IsBIK error
First, save this code to src/public/avi/ibik.h
.
Then in src/game/client/enginesprite.h
include avi/ibik.h
and add insert the hightlighted lines toward the bottom:
bool IsAVI();
bool IsBIK();
void GetTexCoordRange( float *pMinU, float *pMinV, float *pMaxU, float *pMaxV );
private:
AVIMaterial_t m_hAVIMaterial;
BIKMaterial_t m_hBIKMaterial;
Now open spritemodel.cpp
(located in the same directory) and add the following:
bool CEngineSprite::IsBIK()
{
return ( m_hBIKMaterial != BIKMATERIAL_INVALID );
}
Fixing Other Compiling Errors
- Error LNK2005: ... already defined in memoverride.obj
- See Compiling under VS2008#Fix debug compilation.
- Linker Errors relating to LIBC, LIBCMT, LIBCD, LIBCMTD
- Go to the client project's Properties->Linker->Input->Ignore Specific Default Libraries and enter
libc;libcmtd;libcd;
. Navigate to the same place in the server project properties and enterlibcd;libcmtd;
. - Cannot locate "gl/glaux.h" (glview only)
- Remove the line
#include <gl/glaux.h>
fromglview.cpp
. Then right-click on the project and go to Properties->Configuration Properties->Linker->Input and under Additional Dependencies removeglaux.lib
.
- fatal error C1083: Cannot open include file: 'weapon_sdkbase.h': No such file or directory
See article: http://developer.valvesoftware.com/wiki/Source_SDK_missing_files
Precompiled Headers
If you want to remove the "precompiled header" warnings seen during a full compile, open these files in your client project and move #include "cbase.h"
up to the first line:
- hud_locator.cpp
- hud_credits.cpp
- hud_flashlight.cpp
Compiling Under Linux
VS 2010 introduces a new project file format (.vcxproj
) which is not compatible with the SDK's VprojToMake
tool. A third-party update adding support is available.