Opublikowano 28 Września 20231 r Witam społeczność Sharegon! Przedstawiam Wam przewodnik po wdrożeniu biblioteki 'libfmt' w Waszych projektach. Aktualnie pracuję nad projektem Entry-core i przepisuję znaczną część kodu zgodnie z najnowszym standardem C++20. W oryginalnym kodzie gry, tekst formatowany jest za pomocą przestarzałej metody sprintf, która pochodzi jeszcze z języka C. 🕰️ 📝 Kilka słów o bibliotece libfmt... Biblioteka 'libfmt' w C++ służy do formatowania tekstu i oferuje szereg funkcji, które czynią ten proces bardziej wydajnym i bezpiecznym w porównaniu z tradycyjnymi funkcjami formatującymi dostępnymi w C++, takimi jak printf i sprintf. Oferta biblioteki obejmuje API, które jest bardzo czytelne i proste w użyciu, z możliwościami dostosowania do konkretnych potrzeb. ✨Zalety: Kontrola typów podczas kompilacji dzięki zastosowaniu szablonów i funkcji wariadycznych. 🛠️ Znacznie większa szybkość w porównaniu z tradycyjnymi metodami formatowania. 🚀 Intuicyjna i łatwa do zrozumienia składnia, ułatwiająca pisanie i utrzymanie kodu. 📖 Kompatybilność z C++20, z funkcjami wykorzystującymi nowości języka, np. formatowanie zmiennych typu std::string_view. 🆕 ⬇️ Pobieranie: Stworzyłem dla Was gotową paczkę z biblioteką 'libfmt' w najnowszej wersji 10.1.1, którą bez problemu skompilujecie we własnym projekcie. Poniżej przedstawię, jak to zrobić. Na początek pobierz paczkę. libfmt.rar 🛠️ Implementacja na podstawie entry-core: 📁 Lokalizacja: 'usr -> src -> entry-core' Do tej lokalizacji wrzuć pobraną wcześniej paczkę 'libfmt'. 🔧 Proces kompilacji biblioteki: Przejdź do katalogu: /usr/src/entry-core/libfmt/include 📖 Otwórz plik 'MAKEFILE' i ustaw swój kompilator (w przypadku Entry-core jest to clang++12). Uwaga: biblioteka fmt w wersji 10.1.1 musi być skompilowana z flagą -std=c++20. Aby rozpocząć proces kompilacji, wpisz: gmake dep gmake Po udanej kompilacji w folderze libfmt/lib powinieneś zobaczyć plik libfmt.a. Jest to statyczna biblioteka fmt, którą możemy teraz dołączyć do naszego projektu. 🖇️ Dołączanie biblioteki do projektu: 📁 Przejdź do katalogu: /usr/src/entry-core/game/src 📖 Otwórz plik 'MAKEFILE' 🔍 Szukaj: # lua INCDIR += -I../../liblua/5.0/include LIBDIR += -L../../liblua/5.0/lib LIBS += ../../liblua/5.0/lib/liblua.a ../../liblua/5.0/lib/liblualib.a ➕ Dodaj: # libfmt INCDIR += -I../../libfmt/include LIBDIR += -L../../libfmt/lib LIBS += -lfmt Teraz możesz jej używać, dołączając odpowiednie nagłówki, np. #include <fmt/format.h> Gratulacje! 🎉 Właśnie wdrożyłeś bibliotekę fmt do swojego projektu.