Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: undefined reference to `WinMain`

Sivun loppuun

AtskaFin [05.07.2020 18:51:27]

#

Asensin koneelleni TDM-GCC Kääntäjän ja SDL2 kirjaston, jotta saisin käynnistettyä kisaan ilmoitetun Trive -pelin.

Ajan käynnistyksen komennolla:
g++ trive.cpp -lSDL2 -lSDL2_image -o trive

Mutta komento kaatuu seuraavaan virheilmoitukseen:
in function `main':
C:/crossdev/src/mingw-w64-v7-git20191109/mingw-w64-crt/crt/crt0_c.c:18: undefined reference to `WinMain'
collect2.exe: error: ld returned 1 exit status

jsbasic [05.07.2020 19:24:44]

#

Peli perustuu SDL-kirjaston tutoriaaleihin, joten parhaat ohjeet löytyy sen sivulta

http://lazyfoo.net/tutorials/SDL/01_hello_SDL/windows/mingw/index.php

AtskaFin [05.07.2020 20:18:14]

#

Helpointa olisi jos laittaisit binäärit ladattavaksi

Teuro [06.07.2020 07:59:18]

#

*poistettu*

Laita tuo Virhe-ilmoitus Googleen tai Edgeen tai mihin tahansa ja katso tulokset.

AtskaFin [06.07.2020 11:49:00]

#

#define SDL_MAIN_HANDLED

Juu kiitos, tämän kun laittoi niin kääntyi.

Kuuluuisiko pelissä näkyä jonkinlaista grafiikkaa? Itsellä näkyy vain siniset ääriviivat valkoisella pohjalla: https://imgur.com/c6DkKv2

Metabolix [06.07.2020 18:50:14]

#

Poistin SDL2_image-kirjaston käytön (koska sitähän ei edes käytetä pelissä vaan vain alustetaan ja suljetaan). Sitten käänsin pelin näin:

x86_64-w64-mingw32-g++ trive.cpp -lmingw32 -lSDL2main -lSDL2 -lgdi32 -luser32 -lwinmm -limm32 -lole32 -lversion -loleaut32 -o trive.exe -Os -static -s

Lopputulos: trive.exe.

jsbasic [07.07.2020 13:12:15]

#

Jep, Windows-kääntäminen tarvitsee näköjään tuon main-jutun. Korjasin yllä mainitut asiat, pakettiin

https://www.ohjelmakartta.fi/trive/trive-1.1.zip

Tuli myös muutama lähtekooditiedosto lisää, joten nyt käännetään Linuxissa:

g++ trive.cpp ajo.cpp auto.cpp grafiikka.cpp tie.cpp -lSDL2 -o trive

Windows tarvitsee vähintäänkin seuraavan muutoksen:

g++ trive.cpp ajo.cpp auto.cpp grafiikka.cpp tie.cpp -lSDL2main -lSDL2 -o trive.exe

Tässä kääntämisessä on se ilo, että peliä pystyy editoimaan helposti. Muutoksilla "auto.cpp" ja "tie.cpp" tiedostoihin saa pelistä ihan erilaisen. Tarkoitus olisi, että pelaajat voisivat tehdä myöhemmin omia autoja ja ratoja. Tämä selkiintyy myöhemmin.

terrist [07.07.2020 22:43:14]

#

Paria retropeli-kilpailuun osallistunutta peliä en pystynyt testaamaan, koska ei heittämällä toiminut windowsissa. Linukka löytyy jostain wanhasta läppärin raadosta ja säätäminen kirjastojen/kääntäjien kanssa ei sinänsä ole ongelma, mutta helpottais arvostelua jos peli toimii suoraan selaimessa ja/tai winkkarissa.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta