Kompilieren unter Windows

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Kompilieren unter Windows

      1. Was brauche ich alles für Programme um loslegen zu können (Windows)

      1. Visual Studio (am besten die 2008 Version)

      Auswahlseite von Microsoft

      Direktdownload von Microsoft

      Das ist eine 30 Tage Testversion von Microsoft aber auch nach Ablauf der 30 Tage kann man noch damit kompilieren

      2. Python 2.x für Teeworlds 0.5.2. Ab Teeworlds 0.6.0 sollte Python 3.x installiert sein.

      Link zu Python

      3. Codeblocks oder ein anderer Editor

      Codeblocks Downloadseite

      Es kann sein das alle Downloadmirrors überlastet sind – da hilft nur warten
      Hier müsst ihr folgende Datei herunterladen (für Windows)

      codeblocks-10.05mingw-setup.exe

      Dies ist das Programm mit dem ihr die Änderungen am Code vornehmen werdet.
      Codeblocks ist ein sehr vielseitiges Programm was ihr am Anfang noch nicht ganz verstehen braucht. Erst mal ist es nur ein cooler Texteditor :)

      4. Bam 0.4.0 für Teeworlds 0.6.0

      Bam 0.4.0

      Bam ist ein Programm das den Kompiler anspricht.


      2. Welche TeeworldsSource nehme ich?

      Teeworlds Downlodseite

      Nehmt am Besten die Allerneuste.

      3. Los gehts

      Nachdem ihr alle Programme installiert habt richtet euch am besten eine Entwicklungsumgebung ein.
      Im einfachsten Fall ist dies ein Ordner der einen Ordner mit bam enthält und einen mit der TeeworldsSource.



      Wenn ihr was Neues anfangt macht euch immer eine Kopie von dem originalen Teeworlds Source Ordner.

      Nun geht´s ans Kompilieren.
      Zuerst kompilieren wir bam. Dies muss man nur einmal machen. Dannach kompiliert man immer nur die Teeworlds Source.
      - Öffne den bam-Ordner
      - Öffne hier die Datei: make_win32_msvc.bat (ein Konsolenfenster wird geöffnet)
      - Fertig :)

      Ohne eine einzige Änderung im Code vorzunehmen kompilieren wir nun Teeworlds

      - Öffne ein Konsolenfenster
      Leider reicht ein einfachen »Windows Eingabeaufforderungen« - Fenster nicht!
      Suche den Ordner mit Visual Studio. Hier findest du im Unterordner »Visual Studio Tools« die »Visual Studio 2008 Eingabeaufforderung«.
      (Start->Alle Programme->Visual Studio->Visual Studio Tools ->Visual Studio 2008 Eingabeaufforderung
      In diesem Konsolenfenster musst du dich nun in den Teeworlds Source navigieren.
      (cd C:\blablabla\Teeworlds\)

      schreibe hier
      ..\bam-0.4.0\bam
      in das Konsolenfenster und drücke Enter.



      Teeworlds wird nun kompiliert und in dem Source Ordner sind nun einige neue Dateien. Darunter die Client und die Server Datei.

      Bei Problemen oder Fragen bitte genau beschreiben was nicht geht und so viele Informationen wie möglich mit posten.
    • Kompilieren mit Systemvariablen:

      Erst mal:
      Falls dir diese Zusatzinfo hier in deinem Thread nicht recht ist, dann bitte löschen. Dann erstell ich ein neues Tutorial.

      Voraussetzung:
      Ihr müsst erst mal alles so einrichten, wie es MAP94 in seinem Tutorial erklärt hat.

      Anleitung:
      Spoiler anzeigen
      Damit man sich den Aufruf der Visual Studio Eingabeaufforderung spart, kann man die Umgebungsvariablen nutzen um die Befehle vorzudefinieren.

      Dazu drückt ihr [Windows-Taste]+[Pause] und wechselt in den Reiter "Erweitert".
      Hier geht Ihr auf Umgebungsvariablen.

      Bei Systemvariablem passt ihr erstmal die Variable Path an. Erweitert diese mit dem Pfad zu Bam.
      Wenn also bam bei euch im Verzeichnis c:\bam-0.4.0 liegt, fügt ihr am ende der Variable ";c:\bam-0.4.0" (ohne Anführungszeichen) ein.

      Danach erstellt Ihr eine neue Systemvariable z.B.: build
      und gebt dieser folgenden Wert:
      call "C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\..\..\VC\vcvarsall.bat" x86 && bam release

      Solltet Ihr nicht Visual Studio Express 2010 nutzen, so muss der Pfad dementsprechend angepasst werden.

      Wenn Ihr jetzt die Eingabeaufforderung öffnet, wechselt ihr zum Verzeichnis in dem euer Sourcecode liegt.
      Um den Kompiliervorgang zu starten reicht es wenn ihr jetzt %build% eingebt und Enter drückt.

      Des weiteren muss, durch die Erweiterung der Path-Variable, der Sourcecode nicht mehr neben dem Bam Verzeichnis liegen, also kann der Code überall am PC kompiliert werden.

      Ihr könnt die Variable auch in Batchdateien einbauen, damit spart ihr wieder ein paar Handgriffe.


      Hoffentlich konnte ich auch ein wenig helfen und hoffentlich ist es MAP94 recht das ich das hier poste.

      Mit freundlichen Grüßen
      Steve

      P.S.: Spitzen Tutorial :)
    • Fehler Beim Teeworlds Kompilieren

      Bam Ist Schon Kompiliert!
      Windows 7 64-Bit
      intel core i5 2x 2,2 ghz
      4gb ram
      Visual Studio 2012
      bam-46ebce0
      Bam Ist win32 kompiliert!

      fehlermeldung teeworlds kompilieren!:
      Spoiler anzeigen
      [1/1] #1 link teeworlds_d.exe
      backend_sdl_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol
      "_SDL_GetError" in Funktion ""public: virtual int __thiscall CGraphicsBackend_S
      DL_OpenGL::Init(char const *,int *,int *,int,int,int *,int *)" (?Init@CGraphicsB
      ackend_SDL_OpenGL@@UAEHPBDPAH1HH11@Z)".
      client_d.obj : error LNK2001: Nicht aufgel÷stes externes Symbol "_SDL_GetError".

      sound_d.obj : error LNK2001: Nicht aufgel÷stes externes Symbol "_SDL_GetError".
      backend_sdl_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol
      "_SDL_GetAppState" in Funktion ""public: virtual int __thiscall CGraphicsBacken
      d_SDL_OpenGL::WindowActive(void)" (?WindowActive@CGraphicsBackend_SDL_OpenGL@@UA
      EHXZ)".
      backend_sdl_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol
      "_SDL_GetVideoInfo" in Funktion ""public: virtual int __thiscall CGraphicsBacke
      nd_SDL_OpenGL::Init(char const *,int *,int *,int,int,int *,int *)" (?Init@CGraph
      icsBackend_SDL_OpenGL@@UAEHPBDPAH1HH11@Z)".
      backend_sdl_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol
      "_SDL_ListModes" in Funktion ""private: void __thiscall CCommandProcessorFragme
      nt_SDL::Cmd_VideoModes(struct CCommandBuffer::SCommand_VideoModes const *)" (?Cm
      d_VideoModes@CCommandProcessorFragment_SDL@@AAEXPBUSCommand_VideoModes@CCommandB
      uffer@@@Z)".
      backend_sdl_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol
      "_SDL_SetVideoMode" in Funktion ""public: virtual int __thiscall CGraphicsBacke
      nd_SDL_OpenGL::Init(char const *,int *,int *,int,int,int *,int *)" (?Init@CGraph
      icsBackend_SDL_OpenGL@@UAEHPBDPAH1HH11@Z)".
      backend_sdl_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol
      "_SDL_GL_SetAttribute" in Funktion ""public: virtual int __thiscall CGraphicsBa
      ckend_SDL_OpenGL::Init(char const *,int *,int *,int,int,int *,int *)" (?Init@CGr
      aphicsBackend_SDL_OpenGL@@UAEHPBDPAH1HH11@Z)".
      backend_sdl_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol
      "_SDL_WM_SetCaption" in Funktion ""public: virtual int __thiscall CGraphicsBack
      end_SDL_OpenGL::Init(char const *,int *,int *,int,int,int *,int *)" (?Init@CGrap
      hicsBackend_SDL_OpenGL@@UAEHPBDPAH1HH11@Z)".
      backend_sdl_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol
      "_SDL_WM_IconifyWindow" in Funktion ""public: virtual void __thiscall CGraphics
      Backend_SDL_OpenGL::Minimize(void)" (?Minimize@CGraphicsBackend_SDL_OpenGL@@UAEX
      XZ)".
      backend_sdl_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol
      "_SDL_ShowCursor" in Funktion ""public: virtual int __thiscall CGraphicsBackend
      _SDL_OpenGL::Init(char const *,int *,int *,int,int,int *,int *)" (?Init@CGraphic
      sBackend_SDL_OpenGL@@UAEHPBDPAH1HH11@Z)".
      input_d.obj : error LNK2001: Nicht aufgel÷stes externes Symbol "_SDL_ShowCursor"
      .
      backend_sdl_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol
      "_SDL_EventState" in Funktion ""public: virtual int __thiscall CGraphicsBackend
      _SDL_OpenGL::Init(char const *,int *,int *,int,int,int *,int *)" (?Init@CGraphic
      sBackend_SDL_OpenGL@@UAEHPBDPAH1HH11@Z)".
      backend_sdl_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol
      "_SDL_InitSubSystem" in Funktion ""public: virtual int __thiscall CGraphicsBack
      end_SDL_OpenGL::Init(char const *,int *,int *,int,int,int *,int *)" (?Init@CGrap
      hicsBackend_SDL_OpenGL@@UAEHPBDPAH1HH11@Z)".
      sound_d.obj : error LNK2001: Nicht aufgel÷stes externes Symbol "_SDL_InitSubSyst
      em".
      backend_sdl_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol
      "_SDL_QuitSubSystem" in Funktion ""public: virtual int __thiscall CGraphicsBack
      end_SDL_OpenGL::Shutdown(void)" (?Shutdown@CGraphicsBackend_SDL_OpenGL@@UAEHXZ)"
      .
      sound_d.obj : error LNK2001: Nicht aufgel÷stes externes Symbol "_SDL_QuitSubSyst
      em".
      backend_sdl_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol
      "_SDL_WasInit" in Funktion ""public: virtual int __thiscall CGraphicsBackend_SD
      L_OpenGL::Init(char const *,int *,int *,int,int,int *,int *)" (?Init@CGraphicsBa
      ckend_SDL_OpenGL@@UAEHPBDPAH1HH11@Z)".
      client_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_SD
      L_Init" in Funktion ""public: void __thiscall CClient::Run(void)" (?Run@CClient@
      @QAEXXZ)".
      client_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_SD
      L_Quit" in Funktion ""public: void __thiscall CClient::Run(void)" (?Run@CClient@
      @QAEXXZ)".
      input_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_SDL
      _EnableUNICODE" in Funktion ""public: virtual void __thiscall CInput::Init(void)
      " (?Init@CInput@@UAEXXZ)".
      input_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_SDL
      _EnableKeyRepeat" in Funktion ""public: virtual void __thiscall CInput::Init(voi
      d)" (?Init@CInput@@UAEXXZ)".
      input_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_SDL
      _GetKeyState" in Funktion ""public: virtual int __thiscall CInput::Update(void)"
      (?Update@CInput@@UAEHXZ)".
      input_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_SDL
      _WM_GrabInput" in Funktion ""public: virtual void __thiscall CInput::MouseModeAb
      solute(void)" (?MouseModeAbsolute@CInput@@UAEXXZ)".
      input_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_SDL
      _GetMouseState" in Funktion ""public: virtual void __thiscall CInput::MouseRelat
      ive(float *,float *)" (?MouseRelative@CInput@@UAEXPAM0@Z)".
      input_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_SDL
      _GetRelativeMouseState" in Funktion ""public: virtual void __thiscall CInput::Mo
      useRelative(float *,float *)" (?MouseRelative@CInput@@UAEXPAM0@Z)".
      input_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_SDL
      _WarpMouse" in Funktion ""public: virtual void __thiscall CInput::MouseRelative(
      float *,float *)" (?MouseRelative@CInput@@UAEXPAM0@Z)".
      input_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_SDL
      _PollEvent" in Funktion ""public: virtual int __thiscall CInput::Update(void)" (
      ?Update@CInput@@UAEHXZ)".
      sound_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_SDL
      _OpenAudio" in Funktion ""public: virtual int __thiscall CSound::Init(void)" (?I
      nit@CSound@@UAEHXZ)".
      sound_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_SDL
      _PauseAudio" in Funktion ""public: virtual int __thiscall CSound::Init(void)" (?
      Init@CSound@@UAEHXZ)".
      sound_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_SDL
      _CloseAudio" in Funktion ""public: virtual int __thiscall CSound::Shutdown(void)
      " (?Shutdown@CSound@@UAEHXZ)".
      text_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_FT_I
      nit_FreeType" in Funktion ""public: virtual void __thiscall CTextRender::Init(vo
      id)" (?Init@CTextRender@@UAEXXZ)".
      text_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_FT_N
      ew_Face" in Funktion ""public: virtual class CFont * __thiscall CTextRender::Loa
      dFont(char const *)" (?LoadFont@CTextRender@@UAEPAVCFont@@PBD@Z)".
      text_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_FT_S
      et_Pixel_Sizes" in Funktion ""private: void __thiscall CTextRender::InitIndex(cl
      ass CFont *,int)" (?InitIndex@CTextRender@@AAEXPAVCFont@@H@Z)".
      text_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_FT_L
      oad_Glyph" in Funktion ""private: void __thiscall CTextRender::InitIndex(class C
      Font *,int)" (?InitIndex@CTextRender@@AAEXPAVCFont@@H@Z)".
      text_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_FT_L
      oad_Char" in Funktion ""private: int __thiscall CTextRender::RenderGlyph(class C
      Font *,struct CFontSizeData *,int)" (?RenderGlyph@CTextRender@@AAEHPAVCFont@@PAU
      CFontSizeData@@H@Z)".
      text_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_FT_G
      et_Kerning" in Funktion ""private: float __thiscall CTextRender::Kerning(class C
      Font *,int,int)" (?Kerning@CTextRender@@AAEMPAVCFont@@HH@Z)".
      text_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_FT_G
      et_First_Char" in Funktion ""private: void __thiscall CTextRender::InitIndex(cla
      ss CFont *,int)" (?InitIndex@CTextRender@@AAEXPAVCFont@@H@Z)".
      text_d.obj : error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol "_FT_G
      et_Next_Char" in Funktion ""private: void __thiscall CTextRender::InitIndex(clas
      s CFont *,int)" (?InitIndex@CTextRender@@AAEXPAVCFont@@H@Z)".
      teeworlds_d.exe : fatal error LNK1120: 34 nicht aufgel÷ste Externe
      bam: 'link teeworlds_d.exe' error 1120
      bam: error: a build step failed


      Bitte Um Hilfe
      mfg noah.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von meganoahj () aus folgendem Grund: Mehr informationen!

    • RaZoR schrieb:

      Tim schrieb:

      edit: frage: warum hast du win7 64bit wenn du nur 4gb ram hast?
      Wasen das für eine Dumme Frage?

      meganoahj schrieb:

      Warum Ich 64 bit Habe ???
      1. Weil Meine Computer Architektur 64-Bit Ist
      2. Weil mein Computer Mit Windows 7 64-Bit Ausgeliefert wurde
      3. Deine Frage Ist Dumm!

      Ihr seid Dumm. -5 für beide. +10 für Tim.
      Wenn mein Auto 200km/h schnell fahren kann muss ich dann auch mit 200km/h durch die Stadt fahren?
      Solange man nicht mehr als 4GB RAM hat ist 64Bit eine reine Speicherverschwendung.
      PC Hersteller machen das absichtlich damit dumme User, die viel Scheiße installieren die sich dann im Autostart veranckert, schnell den RAM voll machen und ihr PC sterbens langsam wird und sie denken sie müssen sich einen neuen kaufen.
      64Bit Speicheraddressen = jeder Pointer doppelt so groß = viel mehr RAM wird verwendet.

      Schon mal bam -c all und bam config probiert?
    • Bin leider zu doof nen teewars masaterserver zu erstellen. Was mach ich falsch?
      Der Ordner "baselib" ist nirgends zu finden, weder in bam noch in teeworlds >.>

      Habe teewars 0.1.1 und bam 1.

      Quellcode

      1. Setting environment for using Microsoft Visual Studio 2010 x86 tools.
      2. C:\Users\Manuel\Desktop\teewars\masterserver>..\bam1\src\bam
      3. bam: [string "internal base.bam"]:421: Import: Could not open '../../baselib/baselib.bam'
      4. stack traceback:
      5. [string "internal base.bam"](421): Import global
      6. filename = 0011EA40 (function)
      7. options = 00111CC8 (function)
      8. module = 00365088 (function)
      9. x = nil
      10. default.bam(1): (null)
      11. bam: error during build
      Alles anzeigen
    • Natürlich, sonst hätte ich ja keine bam.exe
      In der Eingabeaufforderung von Visual Studio 2010 dann bam aufgerufen und dann sollte es ja kompilieren.

      Teeworlds 0.5 / 0.6 hab ich ja schon hinbekommen.

      Aber ich weiß nicht warum in der default.bam in der teewars source ein baselib pfad angegeben ist, wenn es den ordner weder in bam noch in teewars gibt.

      //Edit: Keiner von euch coding profi's ne idee?

      //Edit²:
      Ich hab nur eine baselib bei matricks gefunden:
      github.com/matricks/baselib

      aber darin gibt es auch keine baselib.bam