Segítségkérés: C++ játékprogram fordítása Win11-en

Fórumok

A BrogueCE nevű remek, open source játékkal szeretnék kísérletezni.

A mellékelt instrukciók alapján (BUILD.md) Windows 11-es változatot szeretnék készíteni, és ehhez telepítettem is az ajánlott MSYS2-t, majd annak instrukciói szerint a gcc-t (v13.2.0).

A játék leírásában az szerepel, hogy ekkor a

pacman -S make mingw-w64-x86_64-{gcc,SDL2,SDL2_image}

paranccsal tudom a szükséges dependenciákat telepíteni (abban a könyvtárban, ahol a BUILD.md található), ami látszólag végig is megy, csakhogy az alábbi hibát kapom, amikor a játékot buildelném:

$ make bin/brogue.exe
make: sdl2-config: No such file or directory
make: sdl2-config: No such file or directory
make: *** No rule to make target 'bin/brogue.exe'. Stop.

Itt elakadtam, mert nem értek a C++-hoz, és mielőtt hiányos/elavult dokumentáció miatt GitHub issue-t készítenék, ki szeretném deríteni, hátha csak PEBKAC történt.

Hozzászólások

Nem teljesen ertem a dolgot. Cross-compile-t szeretnel? Mert azt elegge maceras volt regen beallitani. A pacman - ugy emlekszem - valamelyik Linux disztro csomagkezeloje, a mingw meg a windowsos gcc neve. A ./configure a megfelelo parameterekkel lefutott, vagy nem is kell?

A strange game. The only winning move is not to play. How about a nice game of chess?

Szerkesztve: 2023. 11. 21., k – 21:43

Szerintem az SDL2 nincs feltéve a MSYS2 alá. Vagy fel van téve, de nincs benne a PATH-ban rendesen. Az sdl2-config egy futtatható fájl, amit nem talál. Esetleg nézd meg, hogy a  "pacman -S make mingw-w64-x86_64-{gcc,SDL2,SDL2_image}" parancs során lefutott-e minden rendesen. Akár külön próbáld meg (ismét) feltenni az SDL2-t.

https://www.youtube.com/watch?v=l_yjcm5dihg

Igen, ez ismert gond. A víruskeresők hamisan kakukkolnak, ha még ismeretlen kódot látnak, akkor is, ha semmi probléma nincs az app-pal.

Az exe-t nemrég küldte be a vezető fejlesztő a Microsofthoz, és ott már felkerült az ismert, ellenőrzött appok listájára, ami az aktuális Windows Defenderrel már nem reklamál.

Szerkesztve: 2023. 11. 21., k – 21:59

ha a w64-x86_64 csomagokat tetted fel, akkor a shelledet a fordításhoz így indítsd:

msys2_shell.cmd -mingw64

ezután a promptodban megjelenik a "MINGW64" tag, és elérhető lesz az sdl2-config

Köszönöm! Megpróbáltam, de most a "make bin/brogue.exe" parancsra csak azt kapom, hogy "make: *** No rule to make target 'bin/brogue.exe'. Stop."

Előtte -- biztos ami biztos alapon -- lefuttattam a "pacman -S make mingw-w64-x86_64-{gcc,SDL2,SDL2_image}" parancsot, ami szólt, hogy már fent van minden, de engedélyeztem a reinstallt, ami ismét rendben megtörtént, de még így se működik, bár legalább már nem panaszkodik az SDL2 hiánya miatt.

Lehetséges akkor, hogy egyszerűen hiányos a BUILD.md-ben közölt fordítási instrukció?

Ó, köszönöm! Így már majdnem jó, vagy legalábbis lefut a build!

Persze kapok egy csomó hibaüzenetet, például rögtön az elején kétszer is panaszkodik, hogy nem találja a "cmp" parancsot, de létrejön az exe. Ez ugyan rögtön az indulás után kilép, mert nem találja az "./assets/tiles.png"-t, de ez már határozott haladás!

Azt hiszem, nyitok egy GitHub issue-t, mert ha már van BUILD.md, a teljes folyamatot illene dokumentálnia, ami valaha igaz is volt (pár éve, még Win10-en barkácsolgattam ezt a játékot), csak azóta fejlődött a technika, és ahogy az szokott lenni, nem mindig a jó irányban. :)