Професионална програма
Loading...
Valleri avatar Valleri 301 Точки

Зареждане на ресурси/асети при релийс билд

Привет!
Във лекцията видяхме как се зарежда картинка с макрото SDL_LoadBMP(file). Указахме пътя релативно на пътя на binary-то.
Това е окей за девелопмънт, но ако дадем байнърито си на Пешо, като се опита да го пусне, ще му изгърми понеже той няма да има "../assets/helloworld.bmp".

Идвам от Java и Javascript и там практиката е да има стъпка при билдването, която копира ресурсите в релийс папката за да бъдат налични в артефакта. Обикновенно, туулове като Maven ползват конвенции за това къде стоят статичните файлове в един стандартен Джава проект и се грижи да копира файловете в джара.
А в Javascript се копират в папка в директорията на index.html, където са JS и CSS файловете. Тулове като webpack се грижат за това с минимална конфигурация.
Тоест, и в двете билд системи, в папката билд има всичко необходимо за да се "прати на Пешо" приложението и да заработи. 

Каква е практиката при C++ приложенията?

Извинявам се за дългия въпрос, дадох всичко от себе си да го поясня :)

P.S. Форума вече не е празен! heart

Тагове:
1
C++ Applications Development 09/10/2021 23:26:09
MartinBG avatar MartinBG 3972 Точки

Ако говорим за приложения с много файлове - напр. игрa, е по-практично binary-то да бъде копирано (ръчно или автоматично) в папката с ресурсите, откъдето да бъде стартирано, вместо ресурсите да бъдат копирани някъде по време или след билдването.

Папката с ресурсите може да има система за контрол на версиите, отделна от тази на source кода.

Готовото приложение (binary + ресурси + конфигурации) може да се пакетира в installer, който да се "прати на Пешо" :) 

2