De/Compiling under VS2010: Difference between revisions
Kestrelguy (talk | contribs) (updated language bar. still needs some translation done.) |
|||
Line 1: | Line 1: | ||
{{ | {{lang|Compiling under VS2010|title=Kompilierung unter VS2010}}{{source topicon|suf=:de}}[[Category:Programming:de]][[Category:Source SDK FAQ:de]][[Category:Tutorials:de]] | ||
[[File:Visual studio logo.png|right]] | [[File:Visual studio logo.png|right]] | ||
{{finishtranslation:de}} | |||
'''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. | '''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>'
$File</code>" aus Zeile 2232.}} | |||
{{bug|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>'
$File</code>" aus Zeile 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. | |||
# Folge den Anweisungen [[Compiling under VS2008#Fix debug compilation|für das Beheben von Problemen unter VS2008 | |||
# 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''. | # 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 == | == 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. | 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. | ||
== IsBIK Error == | == IsBIK Error == | ||
Zuerst speichere [https://developer.valvesoftware.com/wiki/Source_SDK_missing_files ibik.h] in <code>src/public/avi/ibik.h</code> ab. | Zuerst speichere [https://developer.valvesoftware.com/wiki/Source_SDK_missing_files ibik.h] in <code>src/public/avi/ibik.h</code> ab. | ||
Dann füge folgendes zur Includelist von <code>src/game/client/enginesprite.h</code> hinzu: | Dann füge folgendes zur Includelist von <code>src/game/client/enginesprite.h</code> hinzu: | ||
Line 47: | Line 41: | ||
== Beheben von anderen Fehlern bei der Kompilierung == | == 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 | ||
: Schaue unter [[Compiling under VS2008#Fix debug compilation]]. | : Schaue unter [[Compiling under VS2008#Fix debug compilation]]. | ||
Line 61: | Line 54: | ||
== Vorkompilierte 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: | 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: | ||
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''. | 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 == | == 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...: [[Vprojtomake 2010|A third-party update adding support is available.]] | 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...: [[Vprojtomake 2010|A third-party update adding support is available.]] | ||
== Links == | == 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}} | ||
* [[Compiling under VS2005:de|Kompilierung unter VS2005]] | |||
[[ | * [[Compiling under VS2008|Kompilierung unter VS2005]] {{en}} | ||
[[ | * [[Compiling under VS2012|Kompilierung unter VS2012]] {{en}} | ||
[[ |
Revision as of 15:53, 31 May 2022
Template:Finishtranslation:de Visual Studio 2010 ist die beste Möglichkeit, mit Source zu arbeiten. Du kannst die kostenlose C++ Express edition benutzen.

game\server\swarm_sdk_server.vcproj
mit einem Texteditor und lösche"'
$File
" aus Zeile 2232. [todo getestet in ?]Debugging
- Folge den Anweisungen für das Beheben von Problemen unter VS2008
, da das hier auch funktioniert.
- 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.
- 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 gebelibcd;libcmtd;
ein. - Cannot locate "gl/glaux.h" (nur glview)
- Entferne die Zeile
#include <gl/glaux.h>
ausglview.cpp
(gespeichert unter src/utils/glview). Dann rechtsklicke das Projekt und gehe zu Einstellungen->Konfigurationseigenschaften->Linker->Eingabe (Properties->Configuration Properties->Linker->Input) und entferneglaux.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:
- hud_locator.cpp
- hud_credits.cpp
- 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.