This article's documentation is for anything that uses the Source engine. Click here for more information.

De/Compiling under VS2010: Difference between revisions

From Valve Developer Community
< De
Jump to navigation Jump to search
(Created page with "{{otherlang2| en=Compiling under VS2010:en| ru=Compiling under VS2010:ru}} right '''Visual Studio 2010''' is the best choice for Source. You can ...")
 
m (obsolete language category)
 
(15 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{otherlang2|
{{lang|Compiling under VS2010|title=Kompilierung unter VS2010}}{{source topicon|suf=:de}}{{ACategory|Programming}}{{ACategory|Source SDK FAQ}}{{ACategory|Tutorials}}
en=Compiling under VS2010:en|
ru=Compiling under VS2010:ru}}
[[File:Visual studio logo.png|right]]
[[File:Visual studio logo.png|right]]
 
{{finishtranslation}}
'''Visual Studio 2010''' is the best choice for Source. You can use the free [http://www.microsoft.com/express/Downloads/#2010-Visual-CPP C++ Express] edition.
'''Visual Studio 2010''' ist die beste Möglichkeit, mit Source zu arbeiten. Du kannst die kostenlose [http://www.microsoft.com/express/Downloads/#2010-Visual-CPP C++ Express] edition benutzen.
 
{{bug:de|Das Konvertieren vom Alien Swarm server project nach VS2010 endet in einem "invalid characters in path" Error. Um das zu verhindern, öffne <code>game\server\swarm_sdk_server.vcproj</code> mit einem Texteditor und lösche"<code>&apos;&#x0A;$File</code>" aus Zeile 2232.}}
{{bug|Converting the Alien Swarm server project to VS2010 will lead to an "invalid characters in path" error. To fix it, open <code>game\server\swarm_sdk_server.vcproj</code> with a text editor and delete "<code>&apos;&#x0A;$File</code>" from line 2232.}}


== Debugging ==
== Debugging ==
 
# Folge den Anweisungen [[Compiling under VS2008#Fix debug compilation|für das Beheben von Problemen unter VS2008]] {{en}}, da das hier auch funktioniert.
# Follow the instructions [[Compiling under VS2008#Fix debug compilation|for fixing debug compiles in VS2008]], which apply here as well.
# Mache einen Rechtsklick auf Das Client- bzw. Server-Projekt, klicke auf ''Einstellungen'' und öffne ''Einstellungen > Konfigurationseigenschaften > Allgemein''(''Properties > Configuration Properties > General''). Ändere hier ''Zielname'' (''Target Name'') jeweils zu ''client'' und ''server''.
# 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 ==
== File Copying ==
Es gibt einen [http://connect.microsoft.com/VisualStudio/feedback/details/603666/custom-build-steps-do-not-run-in-visual-c-visual-studio-2010#details bug] in VS2010, welcher manchmal verhindert das die neu kompilierten DLLs in das Verzeichniss deiner Mod kopiert verden. Um das zu verhindern, rechtsklicke jeweils das Client- und dass Server-Projekt in VS und wähle ''Einstellungen'' (''Properties'') aus. Verändere das drop-down Menü ''Konfiguration'' (''Configuration'') oben links zu ''Alle Konfigurationen'' (''All Configurations''). Danach wähle ''Konfigurationseigenschaften > Benutzerdefinierter Buildschritte'' (''Configuration Properties > Custom Build Step'') und gebe im Feld ''Zusätzliche Abbhängigkeiten'' (''Additional Dependencies'') "''$(TargetPath)''" ein.


There is a [http://connect.microsoft.com/VisualStudio/feedback/details/603666/custom-build-steps-do-not-run-in-visual-c-visual-studio-2010#details 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 ==
 
Zuerst speichere [https://developer.valvesoftware.com/wiki/Source_SDK_missing_files ibik.h] in <code>src/public/avi/ibik.h</code> ab.
== IsBIK error ==
Dann füge folgendes zur Includelist von <code>src/game/client/enginesprite.h</code> hinzu:
 
First, save [https://developer.valvesoftware.com/wiki/Source_SDK_missing_files ibik.h] to <code>src/public/avi/ibik.h</code>.
Then in <code>src/game/client/enginesprite.h</code>, add to the include list:


<source lang=cpp>
<source lang=cpp>
Line 26: Line 20:
</source>
</source>


Next, add the highlighted lines towards the bottom:
Als nächstes musst Du die folgenden Zeilen Code in der Nähe von Zeile ''53'' (irgentwo am Ende) hinzufügen:


<source lang=cpp highlight=2,7>
<source lang=cpp highlight=2,7>
Line 37: Line 31:
BIKMaterial_t m_hBIKMaterial;</source>
BIKMaterial_t m_hBIKMaterial;</source>


Now open <code>spritemodel.cpp</code> (located in the same directory) and add the following:
Als letztes musst Du <code>spritemodel.cpp</code>(im selben ordner) öffnen und da wo Platz ist das hier hinzufügen:


<source lang=cpp>
<source lang=cpp>
Line 46: Line 40:
</source>
</source>


== Fixing Other Compiling Errors ==
== Beheben von anderen Fehlern bei der Kompilierung ==
 
; Error LNK2005<nowiki>:</nowiki> ... already defined in memoverride.obj
; Error LNK2005<nowiki>:</nowiki> ... already defined in memoverride.obj
: See [[Compiling under VS2008#Fix debug compilation]].
: Schaue unter {{L|Compiling under VS2008#Fix debug compilation}}.
; Linker Errors relating to LIBC, LIBCMT, LIBCD, LIBCMTD
; Linker Fehler die mit LIBC, LIBCMT, LIBCD, LIBCMTD zutun haben
: Go to the client project's ''Properties->Linker->Input->Ignore Specific Default Libraries'' and enter <code>libc;libcmtd;libcd;</code>. Navigate to the same place in the server project properties and enter <code>libcd;libcmtd;</code>.
: Gehe in die Einsellungen vom Client-Projekt ''Einstellungen->Liker->Eingabe->Bestimmte Standartbibliotheken ignorieren'' (''Properties->Linker->Input->Ignore Specific Default Libraries'') und gebe <code>libc;libcmtd;libcd;</code> ein. Gehe an die gleiche stelle in den Servereinstellungen und gebe <code>libcd;libcmtd;</code> ein.
; Cannot locate "gl/glaux.h" (glview only)
; Cannot locate "gl/glaux.h" (nur glview)
: Remove the line <code>#include <gl/glaux.h></code> from <code>glview.cpp</code> (can be found in src/utils/glview). Then right-click on the project and go to ''Properties->Configuration Properties->Linker->Input'' and under ''Additional Dependencies'' remove <code>glaux.lib</code>.
: Entferne die Zeile <code>#include <gl/glaux.h></code> aus <code>glview.cpp</code> (gespeichert unter src/utils/glview). Dann rechtsklicke das Projekt und gehe zu ''Einstellungen->Konfigurationseigenschaften->Linker->Eingabe'' (''Properties->Configuration Properties->Linker->Input'') und entferne <code>glaux.lib</code> aus ''Zusätzliche Abhängigkeiten'' (''Additional Dependencies'').
; Warning MSB8012<nowiki>:</nowiki> TargetPath does not match the Linker's OutputFile property ...
; Warning MSB8012<nowiki>:</nowiki> TargetPath does not match the Linker's OutputFile property ...
: Go to ''Properties->Configuration Properties->General''. Change the values in ''Output Directory'', ''Intermediate Directory'', ''Target Name'', and ''Target Extension'' to match the Linker's OutputFile property value given in the error message.
: Gehe zu ''Einstellungen->Konfigurationseigenschaften->Allgemein'' (''Properties->Configuration Properties->General''). Verändere den Inhalt von ''Ausgabeverzeichniss'' (''Output Directory''), ''Zwischenverzeichniss'' (''Intermediate Directory''), ''Zielname'' (''Target Name''), und ''Zielerweiterung'' (''Target Extension'') so, das sie dem in der Fehlermeldung angegebenen Dateipfad entspricht.


;fatal error C1083<nowiki>:</nowiki> Cannot open include file<nowiki>:</nowiki> <nowiki>'</nowiki>weapon_sdkbase.h<nowiki>'</nowiki><nowiki>:</nowiki> No such file or directory
;fatal error C1083<nowiki>:</nowiki> Cannot open include file<nowiki>:</nowiki> <nowiki>'</nowiki>weapon_sdkbase.h<nowiki>'</nowiki><nowiki>:</nowiki> No such file or directory
: See article<nowiki>:</nowiki> http://developer.valvesoftware.com/wiki/Source_SDK_missing_files
: Schaue in den Artikel <nowiki>:</nowiki> http://developer.valvesoftware.com/wiki/Source_SDK_missing_files


== Precompiled Headers ==
== Vorkompilierte Headers ==
 
Wenn Du die "Vorkompilierter Header" bzw. "Precompiled Header" Warnungen loswerden möchtest, dann öffne diese Datein und bewege <code>#include "cbase.h"</code> in die erste Zeile:
If you want to remove the "precompiled header" warnings seen during a full compile, open these files in your client project and move <code>#include "cbase.h"</code> up to the first line:


# hud_locator.cpp
# hud_locator.cpp
Line 69: Line 61:


== First-chance exception at 0x00000000 ==
== First-chance exception at 0x00000000 ==
Wenn der Client kopiliert wird aber der Server nicht, und Du deine Mod Auf Debugging eingestellt hast, stürtzt hl2.exe ohne irgentwelche verwendbare Infos ab. Um zu verhindern dass sich das Spiel bei falscher kompilierung startet, rechtsklicke das Client-Projekt, und wähle ''Projektabhängigkeiten'' (''Project Dependencies'') aus. Mach einen Haken in der Checkbox ''Server'' und drücke ''OK''.


If Client compiles but Server does not, and you have set your mod up for debugging, hl2.exe will crash with extremely ambiguous information. To prevent the game from running if Server does not successfully compile, right click the client project file and select ''Project Dependencies''. Check the checkbox for Server and then click ''OK''.
== Kompilierung unter Linux ==
 
VS 2010 benutzt ein neues Dateiformat (<code>.vcxproj</code>), welches nicht mit dem <code>VprojToMake</code> Tool vom SDK kompatibel ist. Aber es gibt Möglichkeiten...: {{L|Vprojtomake 2010|A third-party update adding support is available.}}
== Compiling Under Linux ==
 
VS 2010 introduces a new project file format (<code>.vcxproj</code>) which is not compatible with the SDK's <code>VprojToMake</code> tool. [[Vprojtomake 2010|A third-party update adding support is available.]]
 
== See also ==


== Links ==
* [http://www.microsoft.com/visualstudio/en-us/products/2010-editions/ Visual Studio 2010]
* [http://www.microsoft.com/visualstudio/en-us/products/2010-editions/ Visual Studio 2010]
* [[Launching from Visual Studio]]
* [[Launching from Visual Studio]] {{en}}
 
* {{L|Compiling under VS2005|Kompilierung unter VS2005}}
[[Category:Tutorials]]
* [[Compiling under VS2008|Kompilierung unter VS2005]] {{en}}
[[Category:Programming]]
* [[Compiling under VS2012|Kompilierung unter VS2012]] {{en}}
[[Category:Source SDK FAQ]]

Latest revision as of 03:11, 22 August 2024

English (en)Deutsch (de)Русский (ru)Translate (Translate)
Visual studio logo.png
Info content.png
This page has not been fully translated.
You can help by finishing the translation.
If this page cannot be translated for some reason, or is left untranslated for an extended period of time after this notice is posted, the page should be requested to be deleted.
Also, please make sure the article complies with the alternate languages guide.(en)

Visual Studio 2010 ist die beste Möglichkeit, mit Source zu arbeiten. Du kannst die kostenlose C++ Express edition benutzen.

Icon-Bug.pngFehler:Das Konvertieren vom Alien Swarm server project nach VS2010 endet in einem "invalid characters in path" Error. Um das zu verhindern, öffne game\server\swarm_sdk_server.vcproj mit einem Texteditor und lösche"' $File" aus Zeile 2232.  [todo getestet in ?]

Debugging

  1. Folge den Anweisungen für das Beheben von Problemen unter VS2008 English, da das hier auch funktioniert.
  2. Mache einen Rechtsklick auf Das Client- bzw. Server-Projekt, klicke auf Einstellungen und öffne Einstellungen > Konfigurationseigenschaften > Allgemein(Properties > Configuration Properties > General). Ändere hier Zielname (Target Name) jeweils zu client und server.

File Copying

Es gibt einen bug in VS2010, welcher manchmal verhindert das die neu kompilierten DLLs in das Verzeichniss deiner Mod kopiert verden. Um das zu verhindern, rechtsklicke jeweils das Client- und dass Server-Projekt in VS und wähle Einstellungen (Properties) aus. Verändere das drop-down Menü Konfiguration (Configuration) oben links zu Alle Konfigurationen (All Configurations). Danach wähle Konfigurationseigenschaften > Benutzerdefinierter Buildschritte (Configuration Properties > Custom Build Step) und gebe im Feld Zusätzliche Abbhängigkeiten (Additional Dependencies) "$(TargetPath)" ein.

IsBIK Error

Zuerst speichere ibik.h in src/public/avi/ibik.h ab. Dann füge folgendes zur Includelist von src/game/client/enginesprite.h hinzu:

#include "avi/ibik.h"

Als nächstes musst Du die folgenden Zeilen Code in der Nähe von Zeile 53 (irgentwo am Ende) hinzufügen:

bool IsAVI();
bool IsBIK();
void GetTexCoordRange( float *pMinU, float *pMinV, float *pMaxU, float *pMaxV );
 
private:
AVIMaterial_t m_hAVIMaterial;
BIKMaterial_t m_hBIKMaterial;

Als letztes musst Du spritemodel.cpp(im selben ordner) öffnen und da wo Platz ist das hier hinzufügen:

bool CEngineSprite::IsBIK()
{
	return ( m_hBIKMaterial != BIKMATERIAL_INVALID );
}

Beheben von anderen Fehlern bei der Kompilierung

Error LNK2005: ... already defined in memoverride.obj
Schaue unter Compiling under VS2008#Fix debug compilation(en).
Linker Fehler die mit LIBC, LIBCMT, LIBCD, LIBCMTD zutun haben
Gehe in die Einsellungen vom Client-Projekt Einstellungen->Liker->Eingabe->Bestimmte Standartbibliotheken ignorieren (Properties->Linker->Input->Ignore Specific Default Libraries) und gebe libc;libcmtd;libcd; ein. Gehe an die gleiche stelle in den Servereinstellungen und gebe libcd;libcmtd; ein.
Cannot locate "gl/glaux.h" (nur glview)
Entferne die Zeile #include <gl/glaux.h> aus glview.cpp (gespeichert unter src/utils/glview). Dann rechtsklicke das Projekt und gehe zu Einstellungen->Konfigurationseigenschaften->Linker->Eingabe (Properties->Configuration Properties->Linker->Input) und entferne glaux.lib aus Zusätzliche Abhängigkeiten (Additional Dependencies).
Warning MSB8012: TargetPath does not match the Linker's OutputFile property ...
Gehe zu Einstellungen->Konfigurationseigenschaften->Allgemein (Properties->Configuration Properties->General). Verändere den Inhalt von Ausgabeverzeichniss (Output Directory), Zwischenverzeichniss (Intermediate Directory), Zielname (Target Name), und Zielerweiterung (Target Extension) so, das sie dem in der Fehlermeldung angegebenen Dateipfad entspricht.
fatal error C1083: Cannot open include file: 'weapon_sdkbase.h': No such file or directory
Schaue in den Artikel : http://developer.valvesoftware.com/wiki/Source_SDK_missing_files

Vorkompilierte Headers

Wenn Du die "Vorkompilierter Header" bzw. "Precompiled Header" Warnungen loswerden möchtest, dann öffne diese Datein und bewege #include "cbase.h" in die erste Zeile:

  1. hud_locator.cpp
  2. hud_credits.cpp
  3. hud_flashlight.cpp

First-chance exception at 0x00000000

Wenn der Client kopiliert wird aber der Server nicht, und Du deine Mod Auf Debugging eingestellt hast, stürtzt hl2.exe ohne irgentwelche verwendbare Infos ab. Um zu verhindern dass sich das Spiel bei falscher kompilierung startet, rechtsklicke das Client-Projekt, und wähle Projektabhängigkeiten (Project Dependencies) aus. Mach einen Haken in der Checkbox Server und drücke OK.

Kompilierung unter Linux

VS 2010 benutzt ein neues Dateiformat (.vcxproj), welches nicht mit dem VprojToMake Tool vom SDK kompatibel ist. Aber es gibt Möglichkeiten...: A third-party update adding support is available.(en)

Links