Zaloguj się aby komentować
#cpp
Używam C++ i problem występuje przy linkowaniu - nie ważne czy używam lld, gold czy mold, zawsze jest to samo.
Da się coś na to zaradzić? Np. jest jakiś krok przed linkowaniem, który usuwa pliki źródłowe i zostawia tylko to co potrzebne do linkowania?
To jest krok z budowaniem aplikacji z address sanitizerem, więc nie mogę wyciąć żadnej opcji, która zmniejszyłaby rozmiar binarki.
#programowanie
#cpp
@krokietowy ustaw sobie ramdysk jako target do kompilacji, tam przechowywanie objfile zlinkują sięjak trzeba a po tym procesie zyskasz binarkę na fizycznym storage'u
A nie dałoby rady budować bibliotek (.a) z poszczególnych komponentów i na koniec z linkować je do końcowej binarki?
@krokietowy Z czystej ciekawości, co to za projekt. Bo to musi być niezła kobyła, w co nie za bardzo chcę mi się wierzyć.
Zaloguj się aby komentować
Zostań Patronem Hejto i tylko dla Patronów
- Włączona możliwość zarabiania na swoich treściach
- Całkowity brak reklam na każdym urządzeniu
- Oznaczenie w postaci rogala , który świadczy o Twoim wsparciu
- Wcześniejszy dostęp, do wybranych funkcji na Hejto
Załóżmy, że jest sobie jakieś tam API udostępniające różne funkcje. API nie jest obiektowe i stanowi po prostu jedną płaską listę funkcji, które można wywołać z różnymi parametrami. Obowiązkowym parametrem każdej funkcji jest identyfikator klienta (pluginu), który funkcję wywołuje.
Chciałem sobie to API jakoś opakować i porobić na jego podstawie jakieś proste obiekty, którymi potem będzie można manipulować, ale nie wiem jak to rozwiązać architektonicznie, głównie przez ten obowiązkowy identyfikator, który trzeba zawsze przekazywać. Każdy jeden obiekt musiałby znać ten identyfikator, więc musiałby być on globalny. Z drugiej strony nie może być za bardzo globalny (np. jako obiekt statyczny), ponieważ teoretycznie w tej samej przestrzeni pamięci będą przebywać różne pluginy z różnymi identyfikatorami. Z kolei przekazywanie identyfikatora jawnie do obiektów za każdym razem trochę mija się z celem, gdyż właśnie tego chcę uniknąć.
Może zetknęliście się kiedyś z takim problemem, albo istnieje jakiś wzorzec na coś takiego?
#programista15k #programowanie #csharp#dotnet #cpp (dla zasięgu)
@MostlyRenegade No to niech sobie każdy obiekt trzyma ten API key - wtedy nie będziesz go musiał za każdym razem do obiektu przekazywać. Różne pluginy w tej samej przestrzeni bdą, oczywiście, musiały korzystać z innych instancji danej klasy.
@sierzant_armii_12_malp Właśnie wymyśliłem, że przecież i tak te obiekty muszę najpierw pobrać funkcją API, a potem wszelkie zmiany zatwierdzić innymi funkcjami, więc już na etapie ich pobierania mogę im przypisać klucz. A gdybym tworzył nowy obiekt, to nic nie stoi na przeszkodzie, aby pobrana kolekcja (w sensie obiekt) również trzymała klucz i przekazywała go obiektom w miarę potrzeby.
Czasem wystarczy napisać posta na hejto i rozwiązanie samo przychodzi ( ͡° ͜ʖ ͡°)
@MostlyRenegade o widzisz, a ja się zastanawiałem dla kogo pisze @elszczepano a pisze dla Ciebie - polecam jego bloga@MostlyRenegade
w większości przypadków wystarczy użyć konstruktora obiektu z parametrem: https://www.frontstack.pl/blog/constructor-design-pattern
dla bardziej specyficznych zastosowań możesz chcieć użyć: https://devszczepaniak.pl/wzorzec-projektowy-builder/ lub https://devszczepaniak.pl/wzorzec-projektowy-factory-fabryka/
@wombatDaiquiri - zaoszczędziłeś mi wymądrzania się
jeśli Cię dobrze rozumiem to możesz to ogarnąć przez clousures albo klasę z konstruktorem zależy czy funkcyjnie czy obiektowo.
edit - wombat dał bardziej kompleksową odpowiedź.
Zaloguj się aby komentować
Jest sobie aplikacja, do której można pisać pluginy. Wtyczki mają postać bibliotek dll, które muszą eksportować odpowiednie funkcje i muszą znajdować się w odpowiednim folderze w ścieżce aplikacji np. "c:\Aplikacja\plugins\"). Interfejs i API jest natywne, ale mam narzędzie napisane w C#, które chciałem podpiąć. Jedna opcja to użycie jakiegoś starego pakietu z NuGeta (DllExport), które dokleja tablicę eksportów do dotnetowego zestawu, ale pomyślałem, że zrobię po prostu pomost w C++/CLI, z którego będą wywoływał obiekty napisane w C#.
Problem polega na tym, że nie mam pomysłu jak poprawnie skonfigurować ścieżki w projekcie, żeby wszystkie DLLki ładowały się od razu przy starcie wtyczki, bez konieczności ręcznego ładowania zestawów dotnetowych i pokazywania ścieżek. Obecnie zestawy dotnetowe muszą być obok aplikacji wywołującej (w "c:\Aplikacja\"), a chciałbym, aby były folderze z pluginami, albo jeszcze lepiej - w dedykowanym folderze wewnątrz katalogu z pluginami (c:\Aplikacja\plugins\MojaWtyczka\). Oczywiście dobrze by było, żeby wszystkie dll-ki budowały się od razu do docelowych folderów przy debugowaniu.
A może jednak trzeba napisać własny resolver, żeby pokazać, gdzie dotnet ma szukać dll-ek?
#programista15k #programowanie #cpp #csharp #dotnet
@MostlyRenegade https://stackoverflow.com/a/398911
@fadeimageone no właśnie nad czymś takim pracuję: natywna aplikacja zewnętrzna + wrapper C++/CLI i reszta w C#. Chodzi mi natomiast o konkretny problem ze ścieżkami do wszystkich potrzebnych dll-ek. Nie mogą się znajdować gdziekolwiek, gdyż wtedy to nie działa.
I jak teraz na to patrzę, to chyba najefektywniej będzie po prostu napisać własny resolver, w którym będzie wskazana ścieżka do ich wyszukiwania.
Komentarz usunięty
Napisałem kiedyś kalkulator w c++ - w czym mogę pomóc?
Zaloguj się aby komentować
Dzisiaj ruszyły zapisy na Potyczki Algorytmiczne 2024, ogólnopolski, otwarty konkurs programistyczny.
-
strona główna: https://potyczki.mimuw.edu.pl/
-
wejście do systemu: https://sio2.mimuw.edu.pl/c/pa-2024-1/dashboard/
Harmonogram
Rejestracja rozpoczyna się 1 marca 2024 o godz. 12:00.
Runda próbna startuje 5 marca 2024 o godz. 12:00 i kończy się 7 marca 2024 o godz. 23:59.
Rundy zdalne wystartują 11 marca 2024 o godz. 12:00, a zakończą się 17 marca 2024 o godz. 23:59.
Ogłoszenie ostatecznych wyników rund zdalnych nastąpi 19 marca 2024 o godz. 20:00.
Finał odbędzie się w dniach 24-25 maja 2024 w Zielonej Górze.
Warto spróbować, nawet jeśli ktoś tylko trochę umie programować. Zadania i rozwiązania z poprzedniej edycji.
Każdego, kto jest pasjonatem algorytmiki i programowania gorąco zapraszamy do wzięcia udziału w XIX edycji konkursu „Potyczki Algorytmiczne”. Potyczki Algorytmiczne są najstarszym internetowym konkursem algorytmiczno-programistycznym w Polsce, adresowanym do wszystkich – uczniów, studentów, zawodowców i amatorów, bez jakichkolwiek ograniczeń wiekowych. W tej edycji, oprócz rozwiązań w C++, dopuszczamy także rozwiązania w Pythonie.
Rejestracja on-line do konkursu rusza już 1 marca 2024 r.
Potyczki Algorytmiczne w roku 2024 składać się będą z dwóch etapów:
● zdalnego – odbywającego się w dniach od 11 marca do 17 marca 2024 roku;
● wielkiego finału – rozgrywanego w dniach 24 – 25 maja w gościnnych progach współorganizatora konkursu, zielonogórskiej firmy Digital Technology Poland. DTP Ltd. Do finału zostanie zakwalifikowanych 20 zawodników.
Dla najlepszych zawodników czekają nagrody rzeczowe. Dodatkowo 128 uczestników otrzyma kultowe koszulki Potyczek Algorytmicznych 2024 oraz upominki-niespodzianki.
#cpp #python #algorytmy
Jak ktoś ma konto na wykopie, to może tam też opublikować.
O kurczę zajrzę. Dzięki!
Zaloguj się aby komentować
Konstruktor zmiennej globalnej nie jest wywoływany.
Po długich godzinach szukania co tu się w ogóle dzieje okazało się, że problem występuje tylko w niektórych plikach w projekcie i tylko w Visual Studio.
Rozwiązanie:
Problem pojawia się jeśli w statycznej libce (dołączanej później do exeka) masz zmienne globalne. Visual Studio domyślnie podczas linkowania nie bierze wszystkich rzeczy z libki - konieczne jest dodanie argumentu linkera /WHOLEARCHIVE (wielkość liter zdaje się mieć znaczenie, co na windowsie nie jest zbyt częste).
W przypadku CMake trzeba dodać:
set_property(TARGET projekt_robiący_binarkę APPEND PROPERTY LINK_OPTIONS /WHOLEARCHIVE:libka_ze_zmiennymi_globalnymi)
Uwielbiam Microsoft. Gdyby nie to, że linkowanie używając GCC zajmuje u mnie ~2 minuty to bym dalej siedział na Eclipse.
#cpp #programowanie #visualstudio
Nie znam cpp, ale „konstruktor zmiennej” brzmi co najmniej dziwnie
@def bo ten język jest w ogóle dziwny
Ale nawet google nie nie wie o konstruktorach zmiennych, chyba, ze autor dokonal tutaj jakiegos skrotu myslowego
Korzystasz z linkera mold? Jest czsami kilka razy szybszy niż ldd czy gnu gold
@krokietowy Myślałem o wypróbowaniu innych linkerów, ale biorąc pod uwagę, że GDB czasem mi się wysypuje (czy debuggery debuguje się debuggerami?), to już wolę siedzieć na Visualu. Generalnie działa on całkiem sprawnie, ale widać, że robił go Microsoft - podpowiadanie składni zawsze na pierwszym miejscu daje najgorszą możliwą opcję, dokładnie tak, jak Excel.
@shiranai Szczerze, jeśli polegasz na takich zależnościach, to na Twoim miejscu zastanowiłbym się, czy to co robisz ma sens.
@groman43 Uwierz mi, że przez chwilę nawet się nad tym zastanawiałem.
Używam w swojej grze Lua. Lua pozwala zdefiniować własne funkcje w C i używać ich z poziomu skryptu. Wcześniej każdą zdefiniowaną funkcję musiałem ręcznie dodawać do Lua. Stwierdziłem, ze to za dużo roboty i chcę się pobawić w automatyczne ich dodawanie. Odgapiłem sposób stosowany do testów w Catch2: https://github.com/catchorg/Catch2/blob/v2.x/include/internal/catch_test_registry.h#L106 . Dopiero po fakcie przypomniałem sobie, że z nim też były problemy jeśli testy definiowałem w osobnej libce.
Zaloguj się aby komentować
Top down shooter Hypersomnia już na Steam! Pisany przez znajomego, 10 lat w C++ bez silnika, z edytorem map i pikselową grafiką. Gra jest darmowa i open-source, więc jak tylko najdzie ochota na partyjkę jak za czasów 1.6 to jest do pobrania na Steam waży ledwie 40 MB!
Jeśli się podoba to dajcie review na Steam dla zasięgów a jeśli się nie podoba to lepiej nie, hehe
#programowanie #cpp #opensource #gamedev #hypersomnia
Zaloguj się aby komentować
https://store.steampowered.com/app/2660970/Hypersomnia/
Strona internetowa: https://hypersomnia.xyz/
Kod źródłowy: https://github.com/TeamHypersomnia/Hypersomnia
Społeczność: https://discord.com/invite/YC49E4G
Materiały dla prasy: https://github.com/TeamHypersomnia/PressKit/blob/main/README.md#intro
#programowanie #cpp #opensource #gamedev #hypersomnia
Zaloguj się aby komentować
Znajomy wypuszcza gierke na Steama, niedługo będzie dostępna.. Wrzucam trailer do obejrzenia.
FUN FACT: Pisze to w VIM-ie
#programowanie #cpp #opensource #gamedev #hypersomnia
https://www.youtube.com/watch?v=L4zSA34fD_E
@Bigos mi też tak się kojarzy @wombatDaiquiri tak, zapraszam na https://discord.gg/YC49E4G
@Hajt
Written in modern C++, without a game engine!
Ke wat?
@koszotorobur pewno chodzi o to, że własny silnik klepnął. W celach edukacyjnych spoko, ale ta gra pewno by na unity ładnie chodziła. Chociaż chyba unity już nie jest fajne, bo kombinują z wydzieraniem kasy od devów. I sumie nie wiem jaka jest alternatywa
@Pjorun - gra jest Open Source - wszystko ładnie gość wyjaśnił w repo: https://github.com/TeamHypersomnia/Hypersomnia - nie znałem tej gry i jestem pod wrażeniem jego pracy!
Ja już właściwie tylko używam https://godotengine.org/ - w pełni darmowy silnik Open Source - właśnie wyszła wersja 4.2 z wieloma usprawnieniami i nie trzeba płacić haraczu jak za Unity.
Uczę dzieciaki robienia gier na https://gdevelop.io/ skonfigurowanym pod robienie lokalnych buildów na Androida tak, że nie trzeba używać dodatkowych usług chmurowych, które są płatne - sam silnik też jest właściwie darmowy i Open Source i świetnie nadaje się do wprowadzenia w budowanie gier bo buduje się z gotowych klocków i używa wizualnego programowania (dla zaawansowanych jest też pisanie normalnego kodu JavaScript).
@Hajt - jak to naprawdę Twój kolega to przekaż mu szacuneczek za tworzenie gry przez tyle lat i do tego bez żadnego gotowego silnika!
Zaloguj się aby komentować
#it #programowanie #programista15k #python #cpp
Zastanawiam się nad przejściem z C++ na Pythona - jest dużo więcej zdalnych ofert, stawki też całkiem niezłe. Czy ktoś z was ma coś podobnego za sobą i może podpowiedzieć jak to wygląda? Co robić w przypadku braku typowo komercyjnego doświadczenia z pythonem? Po prostu wysyłać CV i liczyć, że ktoś mnie zaprosi na rozmowę czy robić jakieś certyfikaty? Mam ~5 lat doświadczenia w it. Początkowo jako support, większość jako software developer - C++, trochę Javy, python na wewnętrzne potrzeby firmy. Do tego sporo pobocznych skilli na umiarkowanym poziomie - m.in.: js, HTML, CSS.
Piszę z anonimowych, bo nie chcę udostępniać sczegółów ze swojego konta.
Kliknij tutaj, aby odpowiedzieć w tym wątku anonimowo
Kliknij tutaj, aby wysłać OPowi anonimową wiadomość prywatną
ID: #655dedb8cf4ac0227e44bf8a
Post dodany za pomocą AnonimoweHejtoWyznania: https://anonimowehejto.pl - Zaakceptowane przez: HannibalLecter
W czasach eksplozji LLM'ów to bym się raczej zastanowił nad przejściem z C++ na przykład na budowlankę albo rolnictwo
Nie znam Cię, więc nie wiem jak to się ma do Ciebie ale podzielę się swoim doświadczeniem z tych okolic. Pracuję w projekcie gdzie mamy część pythonową (zarządzanie) i cpp (faktyczne mielenie ruchu i danych). Jest duża różnica w myśleniu, postrzeganiu problemów i tworzeniu rozwiązań.
Zarówno ja rozumiem kod cpp, jestem w stanie go poprawić albo zmienić, tak samo inni są w stanie zrozumieć mój kod albo go zmienić. Ale każdy jednak w nie swojej bajce "zrobiłby to inaczej". I wydaje mi się że tutaj jest największy problem takiego przejścia: że nie tylko musisz się nauczyć innych narzędzi ale przede wszystkim zacząć inaczej myśleć
OP: @HannibalLecter co do samego języka się zgodzę, ale co z całą resztą? Konkretna dziedzina, frameworki itd. W tej chwili programuję bliżej niż dalej sprzętu, a python to głównie inne tematy - backendy webowe, analiza danych, bazy danych, cloudy itd. Z tym nie mam dużego doświadczenia (ale też nie zerowe).
Ten komentarz został dodany przez osobę dodającą wpis (OP)
Zaakceptował: HannibalLecter
Zaloguj się aby komentować
Zrobiłem libke do łączenia się z wifi na #esp32 . Jest to marna(narazie) podróba wifiManagera od tzapu. Zrobiłem ją tylko dlatego, że tamta działa tylko na arduino-esp32 a moja arduino-esp32 i na czysym espidf framweroku (oraz przez platformio). Narazie mam
-
Odpalanie wifi w trybie AP
-
Serer http ze stroną do podania loginu i hasła do wifi
-
Captive portal ( działa na linux i android, na innych platformach nie testowałem)
-
Zapis i odczy credentiali z pamięci Flash
-
Przejście do trubu STA lub AP_STA ( do wyboru przez uzytkownika)
Moje założenia to:
-
libka ma działać na zasadzie plug and play ( co jest trudne ze względu na kolejny punkt)
-
libka ma być niezależna od frameworku/IDE (nie ważne czy ktoś używa arduino, platformIO czy czystego espidf)
Pytanie:
Jakie dodatkowe funkcjonalności powinienem dodać ? Myślałem nad umożliwieniem dodawania przez użytkownika innych parametrów oprócz SSID i hasła do wifi do stronki i ich zapis. I jeszcze dodać na stonce logger. Czyli okienko gdzie bedą wyświetlać się logi z wykonywania programu bo czasami ktoś może nie mieć dostępu do portu szeregowego żeby je czytać jak urzadzenie gdzieś stoi.
#programowanie #arduino #elektronika #cpp
Nie znam się na ESP, ale czy ten kompilator nie ma stla? Czemu nie korzystasz tutaj z veców i Smart ptrów?
@fitoplankton ma i korzystam. Mam ustawiony cpp17 żeby mieć optionale bez konieczności dodawania boosta. Pewnie pijesz do tego new i delete. Otóż funkcje frameworku są napisane w C a nie w cpp. To co widisz na screenie wyżej wygląda teraz tak jak poniżej.
@fitoplankton a o wyjątki się nie boje bo te funkcje C nimi nie rzucają dlatego nie muszę stosować RAII
Zaloguj się aby komentować
Na początku sprite w mojej grze były zapisane jako png + xml (animacje, klatki, specjalne punkty). Potem zacząłem używać Aseprite, więc sprite zapisane było jako wyeksportowany png + xml. Ciągłe eksportowanie stało się jednak nudne, więc napisałem sobie importer plików .aseprite, dzięki czemu wszystkie informacje dodatkowe, takie jak specjalne punkty i hitboxy, mogłem odczytywać bezpośrednio z nich.
Mając już doświadczenie w odczytywaniu różnych informacji z Aseprite, pomyślałem: "skoro i tak planuję wszystkie etapy rysować, to czemu by nie odczytywać wszystkiego co się da bezpośrednio ze źródła"? Jak pomyślałem tak zrobiłem, a efekty widać na filmiku. Póki co najbardziej jestem dumny z konwersji pikselowych wielokątów na "wektorowe"
Ps. Nienawidzę robić GUI, ale ImGUI jest na tyle niestandardowy, że aż znośny.
#platformowki #cpp #imgui #sfml #aseprite
@cremmy kocham cię
Zaloguj się aby komentować
#programowanie
Poleciłbym wysoko oceniane i dość nowe tytuły z tej strony https://www.packtpub.com/
Miałem do czynienia z kilkoma w tematyce około C++ (np cmake) i były dobrze napisane
Zaloguj się aby komentować
https://adampwr.gitlab.io/c_multiline_strigs_generator/#/
#programowanie
Najlepszą stronkę widziałem kiedyś w django
@senpai nie rozumiem. Django to pyhonowy framework do bakendu( chociaż ma coś takiego jak django admin co jest interfejsem do tego). Ta strona nie ma w ogóle backendu.
Zaloguj się aby komentować
Strona internetowa: https://hypersomnia.xyz/
Kod źródłowy: https://github.com/TeamHypersomnia/Hypersomnia
Discord: https://discord.com/invite/fYe8zkZH
#gamedev #cpp
Kolorowszy i szybszy Alien Breed? Fajne.
Zaloguj się aby komentować
Pensje to totalne gówno, takie które parę lat temu uchodziłyby za redflag i lepszy junior mógł je dostać.
Byłem na niektórych rozmowach i nawet po pozytywnym feedbacku kontakt się potem urywał, albo psie pensje. Pewnie jest tez ogromny spam CV.
Mam prawie 4lata doświadczenia i na mida znaleźć 20k brutto to jest ultra szczęście gdzie dawniej była to norma.
Też macie takie wrażenie? Nawet w innych technologiach?
#programowanie #narzekambolubie
@MauveVn nawet gdybyś miał rację to zdrowy człowiek nie napisałby to w takiej toksycznej formie jakiej Ty napisałeś. Ogarnij swoją frustrację najpierw.
@JakTamCoTam Zgadzam się chociaż specjalizacja trochę inna, jest posucha jeżeli chodzi o naprawdę fajne oferty.
Tego trolla mauvevn olej i nie reaguj.
@JakTamCoTam moze czas na zmiane jezyka na C# albo Java? Tu ofert jest zauwazalnie wiecej. Ew. mozesz pomyslec o B2B. I tak o emeryturze w PL mozna zapomniec, a chociaz sam z roznicy bedziesz mogl odlozyc.
Zaloguj się aby komentować
#programowanie #naukaprogramowania #vscode #clion #jetbrains #cplusplus #cpp
@schweppess No wlasnie. Instalacja na czysto vsc nie pomaga, zmienne srodowiskowe nie tkniete, C/C++ do vsc doinstalowane, nie widac efektow, mam dosyc
@schweppess doinstalowalem g++ i dziala
@miej_nos_na_pol_mordy polecam ogarnąć CMake
Zaloguj się aby komentować
Wie ktoś może jak przechwytywać wszystkie powiadomienia z różnych aplikacji na Windows'ie?
Szukałem w internecie ale nic nie mogłem znaleźć...
#programowanie #programista15k #windows #csharp #cpp
@kiko I raczej nic nie znajdziesz, jeśli chodzi o powiadomienia systemowe, to wątpię, żeby było tutaj jakieś api dostępu do powiadomień z innych aplikacji
@def kurde trochę szkoda...
@kiko @def Wygląda na to, że jest to możliwe https://learn.microsoft.com/en-us/windows/apps/design/shell/tiles-and-notifications/notification-listener
Tak na szybko znalazłem takie cudo https://apps.microsoft.com/store/detail/notification-logger/9MZF9DMHNH3P?hl=en-us&gl=us ale nie używałem tego nigdy bo nie lubię notyfikacji i mam wszystkie powyłączane
Zaloguj się aby komentować