trisaster-Forum

Unterhaltungselektronik und Computer => Computer => Thema gestartet von: Klauserus am 11. Juli 2020, 16:03:14

Titel: Compilern von Github
Beitrag von: Klauserus am 11. Juli 2020, 16:03:14
Hallo Zusammen

gibt es hier jemand der ab und an Code-Projekte von Github compilert?

Speziell RetroArch Cores.

Wenn ja, bitte melden. Ich bräuchte Hilfe
Titel: Re: Compilern von Github
Beitrag von: Kenaio am 12. Juli 2020, 01:26:29
Öhm ja, kommt hier und da schon mal vor. RetroArch Cores eher weniger. Welches Problem hast du denn?
Titel: Re: Compilern von Github
Beitrag von: Klauserus am 12. Juli 2020, 09:30:49
 Um ehrlich zu sein, weiß ich nicht genau was ich alles brauche zum  Compilern.

Es handelt sich um diesen Core (https://github.com/libretro/beetle-psx-libretro). Den gibt es als ARM für die Switch.

In der Readme.md heißt es immer "build with make". Klingt für mich nach Linux Terminal :D
Wird aber wahrscheinlich der Compiler gemeint sein. Aber was für einer? Brauche ich sowas wie DevkitPro?

Würde mich da gerne mal rein fuchsen

Serverseitig zeigt er mir auch was an:

Build started
set Path=C:\msys64\usr\bin;%Path%
Fetching repository commit (5271021)...OK
Total: 16.2 MB in 1177 files
cd %makefile_location%
make -f %makefile_name% platform=%platform%
fatal: not a git repository (or any of the parent directories): .git


Also war in in der Annahme, man könne die Compilern lassen. Dort scheint es aber einen Fehler zu geben.
Auch wenn compilert würde, weiß ich dann auch noch nicht wie ich die Datei in eine NRO wandle.

Aber alles der Reihe nach.
Titel: Re: Compilern von Github
Beitrag von: Kenaio am 12. Juli 2020, 15:06:56
Also zunächst einmal arbeitest du hierfür am einfachsten auf nem Linux Rechner, der Einfachheit halber vielleicht in einer VM. Kompilieren auf Windows kann gerne frickelig werden, Make ist auch standardmäßig ein POSIX Tool und wurde "nur" auf Windows portiert – spar dir den Aufwand, das unter Windows zum Laufen zu bringen.

Um das Programm zu kompilieren, kommst du nicht um die Shell herum. Diese öffnest du, navigierst in einen Ordner deiner Wahl und tippst ein:
git clone https://github.com/libretro/beetle-psx-libretro.git
Damit erzeugst du einen Unterordner beetle-psx-libretro, welcher den aktuellsten Quellcode enthält.
Mittels "cd beetle-psx-libretro" wechselst du nun in den Ordner und kompilierst das Programm, indem du einfach nur "make" eintippst. Mit "make clean" kannst du alle (temporären) Dateien, die der Build Prozess erzeugte, löschen. Möchtest du den HW-Renderer mit erzeugen, nutzt du "make HAVE_HW=1" zum kompilieren, Details dazu findest du auf der GitHub Seite. (Readme.md) Welche Befehle genau ausgeführt werden, nachdem du "make" eingetippt hast, findest du im Makefile (https://github.com/libretro/beetle-psx-libretro/blob/master/Makefile).

Ggf. erhältst du Fehlermeldungen, weil dir Pakete fehlen. Diese musst du im Einzelnen auswerten und nachinstallieren. Ich gehe aber davon aus, dass es reicht, das Paket "build-essential" zu installieren (sudo apt-get install build-essential), welches Make und GCC als C Compiler enthält.

Make erleichtert dir übrigens die Schritte des Kompilierens und Linkens, siehe Anhang. (entnommen aus Joseph Yiu, The definitive guide to the ARM Cortex-M3, 3rd edition, 2014, Auszug (http://hhoegl.informatik.hs-augsburg.de/es2/gnu/DGCM3-2e-ch19.pdf))
Titel: Re: Compilern von Github
Beitrag von: Klauserus am 12. Juli 2020, 15:15:43
Oh Super. Vielen Dank. Da setze ich mich doch am Abend gleich nochmal hin...
Habe ich das richtig verstanden, dass Linker die Zieldatei erzeugt? Im Diagramm z.B. .elf
Kannst du mir noch sagen wie man eine nro für Switch ausgibt?...falls ich soweit komme

;D

Vielen dank und einen schönen Sonntag
Titel: Re: Compilern von Github
Beitrag von: Kenaio am 13. Juli 2020, 18:10:18
Genau, der Linker erzeugt die Zieldatei. Vielleicht hast du Glück und es kommt gleich eine .nro raus, ansonsten würde ich dann gucken was du hast und wo du hin willst  :)
Titel: Re: Compilern von Github
Beitrag von: Klauserus am 14. Juli 2020, 17:35:52
Ich scheitere schon an der Installation von git  ::)

(https://s12.directupload.net/images/200714/temp/ekbb95qu.jpg) (https://www.directupload.net/file/d/5880/ekbb95qu_jpg.htm)

Ich sage mit "J" ich möchte fortfahren, er bricht aber ab.

sudo apt update
sudo apt upgrade
sudo apt install git


nu kommt das raus wenn ich mit dem oben genannten Befehlen installieren will:

git clone https://github.com/libretro/beetle-psx-libretro.git
WARNING:root:could not open file '/etc/apt/sources.list'


Der Befehl 'git' wurde nicht gefunden, kann aber installiert werden mit:

sudo apt install git


Hab ich aber schon installiert ^^

Hab ich schon erwähnt, dass ich Linux Neuling bin? :D

Titel: Re: Compilern von Github
Beitrag von: Takeshi am 14. Juli 2020, 18:31:55
Ich bin zwar kein Linux-Neuling, aber GIT habe ich unter Linux noch nie genutzt, bisher nur unter Windows in einer IDE integriert.

Ich würde jetzt mal ganz blöd machen, was dir die Kommandozeile sagt: git installieren. Oder hast du das schon gemacht?
Titel: Re: Compilern von Github
Beitrag von: Klauserus am 14. Juli 2020, 18:39:37
Alle Fehler behoben. Das war vielleicht ein gefrickel.

Habe noch Build Essential installiert... make HAVE_HW=1 ging leider nicht. gl/h. Verzeichnis nicht gefunden. Wenn ich mich recht erinnere wird make HAVE_HW=1 die GPU benutzt?
Make läuft gerade....ui dat dauert....nächstes mal setze ich mich an meinen Ryzen PC...

deps/lightning/lib/jit_print.c: In function '_jit_print_node':
deps/lightning/lib/jit_print.c:27:43: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'jit_pointer_t {aka void *}' [-Wformat=]
#define print_str(value)  fprintf(stdout, "%s", value)
                                           ^
deps/lightning/lib/jit_print.c:283:13:
   print_str(node->v.n->u.p);
             ~~~~~~~~~~~~~~                 
deps/lightning/lib/jit_print.c:283:3: note: in expansion of macro 'print_str'
   print_str(node->v.n->u.p);
   ^~~~~~~~~
deps/lightning/lib/jit_print.c:27:43: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'jit_pointer_t {aka void *}' [-Wformat=]
#define print_str(value)  fprintf(stdout, "%s", value)
                                           ^
deps/lightning/lib/jit_print.c:288:13:
   print_str(node->v.n->u.p);
             ~~~~~~~~~~~~~~                 
deps/lightning/lib/jit_print.c:288:3: note: in expansion of macro 'print_str'
   print_str(node->v.n->u.p);
   ^~~~~~~~~
CC deps/lightning/lib/jit_print.c
CC deps/lightning/lib/jit_size.c
deps/lightning/lib/lightning.c: In function '_jit_patch_abs':
deps/lightning/lib/lightning.c:1544:18: warning: variable 'mask' set but not used [-Wunused-but-set-variable]
     jit_int32_t  mask;
                  ^~~~
deps/lightning/lib/lightning.c: In function '_jit_patch_at':
deps/lightning/lib/lightning.c:1567:18: warning: variable 'mask' set but not used [-Wunused-but-set-variable]
     jit_int32_t  mask;
                  ^~~~
deps/lightning/lib/lightning.c: In function '_jit_emit':
deps/lightning/lib/lightning.c:2012:12: warning: variable 'result' set but not used [-Wunused-but-set-variable]
     int    result;
            ^~~~~~
In file included from deps/lightning/lib/lightning.c:3492:0:
deps/lightning/lib/jit_x86.c: In function '_patch':
deps/lightning/lib/jit_x86.c:2219:18: warning: variable 'flag' set but not used [-Wunused-but-set-variable]
     jit_int32_t  flag;
                  ^~~~


Der Code wird wohl nicht viel bedeuten. Hat auf jedenfall abgeschlossen. Nur ist im Ordner keine Datei gewachsen. Ich vermisse also den Output.
Ich gehe mal auf die Suche...

Danke nochmal. Ich hab FUN  ;D

NACHTRAG:

(https://s12.directupload.net/images/200714/temp/2mgx5za8.png) (https://www.directupload.net/file/d/5880/2mgx5za8_png.htm)

Die markierten Dateien kommen raus. Damit kann ich leider wenig anfangen.
Titel: Re: Compilern von Github
Beitrag von: Takeshi am 15. Juli 2020, 01:29:22
Ich glaube, du hast die Dateien jetzt kompiliert und musst sie jetzt noch linken. Ja, das ist der Grund, warum Linux ewig so gar nicht in den Quark kam. Das ist einfach nur ätzend, wenn man erst zum Programmierer werden muss, um sich ein Programm zu installieren. Einerseits schwört man auf Open Source, dass der einmal entwickelte Code jedem zur Verfügung steht und kein Software-Entwickler die Arbeit ein zweites Mal erledigen muss und an anderer Stelle legt man großen Wert darauf, dass jeder Anwender die gleiche Arbeit immer und immer wieder erledigen muss (von der er keine Ahnung hat, nicht haben will und auch nicht haben müsste), um das immer gleiche komplilierte Ergebnis zu erhalten und eine Anwendung einfach nur zu benutzen. Es ist echt lächerlich.
Titel: Re: Compilern von Github
Beitrag von: Kenaio am 16. Juli 2020, 01:36:22
Du meintest eingangs, du möchtest das Ergebnis in eine NRO packen. Ist es sicher das, was du brauchst? Ich habe verstanden, dass das ein RetroArch Core ist, welcher selber nicht im HomeBrew Launcher geöffnet werden kann (dafür bräuchtest du eine .nro), sondern lediglich in den RetroArch Einstellungen eingebunden wird?
Titel: Re: Compilern von Github
Beitrag von: Klauserus am 16. Juli 2020, 11:48:20
Die Cores liegen alle im nro Format im Core Ordner von RetroArch vor, der wiederum auf der SD Karte der Switch liegt.

Kannst du hier (https://wiidatabase.de/switch-downloads/emulatoren/retroarch-switch/) mal runterladen wenn du magst und dir ansehen.

Wie das RetroArch selbst verwaltet weiß ich nicht, da Retroarch ebenfalls in einer NRO gesoeichert ist und ausgeführt wird.

ahh hier:

Zitat von Switchbrew

[i]NRO is the executable format for non-ExeFS binaries.

It starts with the NRO-start structure then the "NRO" header and mainly describes .text, .rodata, and .data segments (like a short-form of ELF program headers)[/i]
Titel: Re: Compilern von Github
Beitrag von: Kenaio am 19. Juli 2020, 22:54:41
Da kann ich dir leider nicht weiterhelfen, wie du das in ein Paket bekommst. Tut mir leid! :-[
Titel: Re: Compilern von Github
Beitrag von: Klauserus am 20. Juli 2020, 09:02:12

Macht nichts. Aber durch dich bin ich schon einmal viel weiter gekommen.  ;D
Titel: Re: Compilern von Github
Beitrag von: Kenaio am 26. Juli 2020, 02:16:56
Wenigstens etwas, freut mich :)
Titel: Re: Compilern von Github
Beitrag von: Klauserus am 29. Juli 2020, 17:22:27
@Kenaio

Hab noch eine Frage:
Wie installiere ich Cmake 3.13 oder höher auf Linux Mint?

Ich kenne die meisten Befehle. Komme aber auf Linux Mint 19.X nur auf 3.10. Installiere ich 3.16 Läd er zwar was und..ich glaube compilert auch die Objectdateien. aber Version bleibt immer gleich.

Grund: Wollte nun statt für Switch mal ein Programm für linux probieren. Bespiel: MelonDS
Titel: Re: Compilern von Github
Beitrag von: Kenaio am 01. August 2020, 17:04:55
Der Klassiker sudo apt-get install cmake funktioniert nicht? Dann würde ich mal Snap ausprobieren:
https://snapcraft.io/install/cmake/mint

Idealerweise ist es aber mit apt-get getan. Würde mich wundern, wenn nicht, immerhin basiert Linux Mint auf Debian und dort ist es im Repository vorhanden. (https://packages.debian.org/de/sid/cmake)
Titel: Re: Compilern von Github
Beitrag von: Klauserus am 02. August 2020, 12:06:48
@Kenaio

Danke danke aber den "Befehl" kenne ich. So habe ich 3.10 installiert. Er installiert eben nur 3.10 und keine neuere Version.
Habe es auch mit anderen Befehlen von der Cmake Seite probiert. Weiß sie nicht mehr aus dem Kopf, auf jedenfall etwas,
bei dem auch Betas geladen werden sollen. Installation läuft auch immer. Bleibt nur nicht im System. ich lese immer wieder nur cmake --version = 3.10.

Vielleicht muss ich Mint auch Updaten. Das habe ich auch schon angeleihert aber da schimpft er was mit den HDD´s dass ich die anderen alle abziehen soll.

Dieses Linux...Wenn es mir nicht Spass machen würde die Probleme zu lösen, dann hätte ich das schon längst wieder deinstalliert...
Titel: Re: Compilern von Github
Beitrag von: Takeshi am 02. August 2020, 12:28:21
Mint hat doch ein eigenes Repository, auch wenn das vielleicht vom Debian-Repository abgeleitet ist. Vielleicht ist es in dem nicht in der Version enthalten? Ich meine nämlich, dass es bei Mint teilweise neuere Versionen eher gab, aber das kann ja auch mal umgekehrt sein.
Titel: Re: Compilern von Github
Beitrag von: Kenaio am 04. August 2020, 18:30:40
Dann würde ich die neueste Version von der Homepage runterladen:
https://github.com/Kitware/CMake/releases/download/v3.18.1/cmake-3.18.1.tar.gz
Dieses musst du entpacken und entsprechend der Readme.rst installieren; hierfür ist dieser Befehl angegeben, welcher alles notwendige erledigt (kompilieren und installieren):
./bootstrap && make && sudo make install
Ein C++11 Compiler muss hierfür installiert sein, den solltest du aber aus den vorherigen Kompilierversuchen noch da haben. Stelle vorher sicher, dass alte Versionen von Cmake deinstalliert sind, sonst könnte es Probleme geben. Viel Erfolg! Linux ist gerne frickelig ;)

@Takeshi: Tatsächlich hat Mint sein eigenes Repository, in dem Cmake nicht enthalten ist: http://packages.linuxmint.com/list.php?release=Ulyana Guter Fang!
Titel: Re: Compilern von Github
Beitrag von: Klauserus am 05. August 2020, 09:08:16

Danke danke

komischerweise hat das jetzt geklappt. Zumindest mit der Installation. Beim Compilern bekomme ich jetzt den nächsten "Error"

CMake Error at src/frontend/qt_sdl/CMakeLists.txt:41 (find_package):
  By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Qt5", but
  CMake did not find one.

  Could not find a package configuration file provided by "Qt5" with any of
  the following names:

    Qt5Config.cmake
    qt5-config.cmake

  Add the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR"
  to a directory containing one of the above files.  If "Qt5" provides a
  separate development package or SDK, be sure it has been installed.


Titel: Re: Compilern von Github
Beitrag von: Kenaio am 06. August 2020, 21:02:31
Hasst du die Dependencies erfolgreich installiert?
https://github.com/Arisotura/melonDS
sudo apt-get install libgtk-3-dev libcurl4-gnutls-dev libpcap0.8-dev libsdl2-dev