Mam program napisany w C# który następnie korzysta z innego programu napisanego w C++
np. Ja generuje obrazek z poziomu C#, a później wywołuje program C++owy program_cpp.exe obrazek.jpg
aby zrobił coś z tym obrazkiem (np. przyjmijmy że to ffmpeg)
Zastanawiam się jak powinienem to zrobić, aby gdy ktoś sklonuje sobie moje repo nie musiał nic robić aby móc wykonać cały proces (użyć obu programów)
Nad czym się zastanawiałem:
-
Skompilować pod wszystkie platformy i wrzucić binarki do repo, ale problem jest taki, że te pliki wynikowe są ogromne i np. repo zamiast mieć 2MB, to miałoby z 1GB.
-
Osobne repo w którym byłyby all binarki i ludzie by sobie dociągali co potrzebują - instrukcja
Install for Windows/Mac/Linux...
, ale to takie trochę mierne. -
To co poprzednie, ale mój programik sam sobie pobiera to co trzeba, ale to też chyba trochę mierne i nie budzi zaufania
-
A może jako że mam kod programu C++, to mógłbym to jakoś wykorzystać? P/Invoke / DllImport?
-
Jakieś kwestie związane z static/dynamic linking?
-
Niech sobie również skompilują C++ - odpada, nie dość że trzeba doinstalować milion rzeczy, to czas kompilacji kosmiczny.
Nie jestem pewien jak to robią projekty typu Zig korzystając z llvma