Wie installiere ich ein Windows-Programm (geschrieben in C), das von GitHub heruntergeladen wurde?

44

Ich habe ein totes einfaches Windows - Programm von GitHub heruntergeladen ( das , wenn es relevant ist ). Ich habe es als ZIP-Datei heruntergeladen, weiß aber nicht, wie ich es installieren soll. Es ist in C geschrieben, denke ich. Benötige ich einen Compiler? (Visual Studio?) Fehlt mir etwas Einfaches?

Josh Friedländer
quelle
9
Entschuldigung, das ist offensichtlich ein großes Noob-Problem, das ich habe. Wie? Es gibt keine ausführbare Datei.
Josh Friedlander
6
Sie benötigen wahrscheinlich Windows SDK und die zugehörigen C-Header, um das Programm zu kompilieren. Normalerweise werden die Abhängigkeiten erwähnt und Kompilierungsanweisungen sind in der Readme enthalten. In diesem Fall ist beides nicht enthalten, sodass Sie den Repo-Eigentümer / Projektautor bitten müssen, die relevanten Informationen zu erhalten.
Larssend
7
Sie benötigen einen Compiler. Ich würde mich an den Entwickler wenden und fragen, wie man es baut. Typischerweise enthält Linux-Software, die als Quelle bereitgestellt wird, Bauanweisungen, auf seinem Github sehe ich jedoch keine.
LawrenceC
12
Sie haben kein aktuelles Programm heruntergeladen, Sie haben den Quellcode für das Programm heruntergeladen und müssen es zuerst kompilieren. Gemessen am Makefile dort müssen Sie alles bauen, was es in MINGW gibt.
Mokubai
21
Hier ist die ausführbare Datei github.com/renatosilva/winutils/releases
Barlop

Antworten:

29

Github wird hauptsächlich von Programmierern verwendet, um an Projekten zusammenzuarbeiten. Mit der Option "ZIP herunterladen" wird eine Kopie des Quellcodes auf Ihren Computer heruntergeladen. Diese in der Regel 1 keine Kopie der kompilierten verwendbaren ausführbaren Dateien enthalten / Binärdateien (dh, exe - Dateien)

Releases ist eine Github-Funktion für den Versand von Software an Endbenutzer (die normalerweise nicht an der eigentlichen Codierung interessiert sind). Versionen werden von Versionshinweisen und Links zum Herunterladen der Software oder des Quellcodes begleitet. Dies ist der erste Ort, an dem Sie nach Binärdateien suchen sollten .

In Ihrem Fall bietet die Release-Seite Downloads und Setup-Dateien.

In vielen Projekten sind jedoch keine Releases verfügbar (insbesondere nicht für Windows). In diesem Fall haben Sie folgende Möglichkeiten:

  1. Suchen Sie im Internet nach Binärdateien. Normalerweise finden Suchmaschinen wie DuckDuckGo (oder Google , wenn Sie es vorziehen) leicht, was Sie wollen. Versuchen Sie, nach <application name> for Windowsoder zu suchen <application name> exe.

  2. Stelle es selbst zusammen. Sie müssen mindestens Grundkenntnisse in der Programmiersprache haben, um dies tun zu können. Auch hier können Suchmaschinen massiv hilfreich sein. Versuchen Sie, nach compile <application name> on Windowsoder zu suchen MinGW compile <application name>.

    Hier werde ich die Grundlagen des Kompilierens von Dienstprogrammen für Widnows durchgehen:

    • Laden Sie MinGW herunter . Ich persönlich bevorzuge dieses Paket, weil es mit Boost (das von mehreren Anwendungen verwendet wird) und einer coolen Shell geliefert wird. Es kommt auch mit git, was sehr nützlich sein kann, wenn Sie Dateien kompilieren möchten, die auf Github oder anderen Git-Versionskontroll-Repositorys gehostet werden, ohne die Quelle separat herunterladen zu müssen.

    • Führen Sie die folgenden Befehle in cmdoder aus powershell:

      • cd c:\sources\hello: Wechseln Sie in das Verzeichnis, in dem sich die Quelldatei (en) befinden.
      • g++ helloworld.cpp -o helloworld.exe: Hier helloworld.cppist der Name der Hauptquelldatei und helloworld.exeder Name der kompilierten ausführbaren Datei.
      • Falls Sie mehrere Dateien kompilieren müssen, listen Sie diese vor dem -oWechsel auf:g++ helloworld.cpp foo.cpp -o helloworld.exe
      • Dies sind die Anweisungen für C ++. Wenn Sie mit in C programmierten Anwendungen arbeiten, lautet die Dateierweiterung .cstatt .cppund Sie sollten den gccBefehl statt verwenden g++. Der Rest ist mehr oder weniger identisch
      • Beachten Sie, dass Sie möglicherweise weitere Befehlszeilenargumente angeben müssen, um eine ausführbare Datei zu kompilieren, die ordnungsgemäß funktioniert. Die Projektseite enthält normalerweise diese Details.
      • Sie wollen sich wahrscheinlich auch unbedingt Makefiles ansehen. Dieser Stack - Überlauf Beitrag ist über Makefiles im Allgemeinen und dies sagt uns , wie sie mit MinGW verwenden. Wenn ein Projekt ein Makefile enthält, probieren Sie es aus, bevor Sie die Quelle manuell kompilieren.
      • Sie sollten jetzt in der Lage sein zu rennen helloworld.exe.
    • Hinweis: Die meisten Projekte werden mit einer README-Datei geliefert. Bitte tun Sie, was der Name andeutet. Diese Dateien enthalten wichtige Informationen zum Kompilieren und Ausführen von Software. Wenn Sie sie lesen, können Sie unnötigen Ärger vermeiden.

1 Hinweis: Manchmal befindet sich binunter den heruntergeladenen Dateien ein Ordner , der ausführbare Dateien / Binärdateien enthalten sollte

Siehe auch Cygwin und GOW, wenn Sie GNU / Linux-Befehlszeilendienstprogramme unter Windows benötigen . Ich stelle hier die neueste Version einiger nützlicher ausführbarer Dateien zum Download bereit .

Weitere Informationen:
http://www.mingw.org/wiki/MinGW_for_First_Time_Users_HOWTO
https://gcc.gnu.org/onlinedocs/index.html#dir
https://stackoverflow.com/questions/22873884/how-do-i -run-configure-with-mingw

rahuldottech
quelle
Danke, das ist eine großartige Antwort, und ich habe sie so geändert, dass sie als endgültig markiert ist. (Ich hatte meine Frage früher bearbeitet, um zu verdeutlichen, dass dies das war, wonach ich suchte, aber aus irgendeinem Grund hat BoundaryImposition es herausgeschnitten.)
Josh Friedlander
Ich denke nicht, dass es Aibobots Kopfgeldanforderung erfüllt, aber das ist zwischen Ihnen und ihr / ihm.
Josh Friedlander
2
@JoshFriedlander Ich freue mich über jede Hilfe! Ich werde später mehr zur Antwort hinzufügen ... Ja, ich war im Chat mit JourneymanGeek (Aibobot), er wird ein paar Tage warten, bis neue Antworten auftauchen.
Rahuldottech
1
Dieses Projekt hat möglicherweise keine, aber beachten Sie, dass die meisten Projekte wahrscheinlich Abhängigkeiten aufweisen . Wenn Sie also den Kompilierungspfad wählen, müssen Sie möglicherweise die Bibliotheken, von denen die Software abhängt, ausfindig machen, herunterladen und installieren ( oder kompiliere sie auch). Normalerweise ist es nicht so einfach, nur das Makefile auszuführen. Einige von ihnen haben möglicherweise sogar andere Build-Skripte, wie z. B. cmake, Configure Script usw.
jrh
2
Ist der Prozess in den meisten Fällen wirklich so einfach? Welcher Teil der Github-Dienstprogramme erfordert wesentlich mehr Wissen, um sie zu kompilieren als das, was Sie hier beschrieben haben?
Gaazkam
87

Sie sehen sich um und finden das Installationsprogramm auf der Release-Seite . Sicher, Sie könnten die Quelle kompilieren, aber ich glaube nicht, dass Sie das wollen.

Geselle Geek
quelle
49
Einverstanden. Wenn Sie fragen müssen, möchten Sie nicht aus dem Quellcode kompilieren.
Thunderblaster
10
Wenn Sie fragen müssen, sollten Sie wahrscheinlich keine Software installieren, die nur in Quellform verfügbar ist ...
jpaugh
11
Ich bin geneigt, @jpaugh zuzustimmen. Obwohl es sehr gut möglich und manchmal notwendig ist, aus dem Quellcode zu erstellen, können Sie nicht einfach fragen, wie ich ein C-Programm generisch erstelle. Es gibt einfach zu viel Varianz. Einige glückliche Programme sind so einfach wie "diese Dateien kompilieren". Andere brauchen Makefiles. Einige benötigen Abhängigkeiten, die zuerst heruntergeladen werden müssen. Das Einrichten für den Build kann kompliziert sein und ist nicht unbedingt programmierfreundlich. Vor allem aber möchten Sie im Projekt eine Datei finden, in der erklärt wird, wie Sie erstellen, da die Details projektabhängig sind.
Kat
35
@jpaugh - Ich würde sagen, Sie haben eine viel bessere Chance, Malware durch Herunterladen einer ausführbaren Datei zu installieren - Malware ist selten Open Source.
Namey
3
Vorausgesetzt, Sie können die Sprache tatsächlich lesen. Ich kompiliere halb routinemäßig Sachen unter Linux und kann / kann keine der Quellen lesen. Selbst wenn ich könnte, werde ich nicht jede einzelne Zeile überprüfen.
Geselle Geek
66

C- und H-Dateien sind C-Quellcode.

Sie müssen einen C-Compiler wie Visual Studio, tcc oder ähnliches installieren, das Projekt laden und dann kompilieren, um es auszuführen.

Andernfalls verfügt das Projekt über eine Release-Seite ( hier ), über die Sie auf eine vorkompilierte Version zugreifen können, um Zeit und Mühe zu sparen.

Fazer87
quelle
14
Wenn er es kompilieren müsste, würde es normalerweise in einer Readme-Datei erklärt, von der Sie nicht einmal erwähnen, dass er danach suchen sollte. Er soll auf die Release-Seite gehen, es ist nicht nur "Misserfolg (Installation eines Compilers), dass er auf die Release-Seite gehen sollte"
Barlop
3
mingw ist auch beliebt.
Zan Lynx
1
Ein bestimmtes Projekt ist normalerweise für die Verwendung mit einem bestimmten Satz von Kompilierungswerkzeugen (als "Toolchain" bezeichnet) zugeschnitten - welches normalerweise in einer Readme-Datei erwähnt wird (in UNIX- und plattformübergreifenden Projekten wird es üblicherweise als BUILD oder INSTALL bezeichnet). . In weniger als hervorragend gepflegten Projekten oder Projekten für Umgebungen mit nur wenigen bekannten Toolchains sollte ein Benutzer das Format und / oder den Inhalt von Projektdateien erraten.
ivan_pozdeev
TCC? "Ja wirklich?" Sie waren nicht ernst, oder?
Yashas
18

Diese Antwort befasst sich mit der allgemeinen Frage des Erstellens einer reinen Quell-Windows-Anwendung (in C). Wenn Sie Glück haben wie das OP, können Sie möglicherweise vorkompilierte Binärdateien finden.

Das Erste, was Sie dabei beachten sollten, ist, dass es keine einzige Möglichkeit gibt, eine App aus dem Quellcode zu erstellen. Es gibt ungefähr so ​​viele Variationen wie es verschiedene Projekte gibt. Das heißt, hier sind einige allgemeine Schritte:

  1. Wenn Sie Glück haben, enthält das Projekt Anweisungen zum Erstellen, normalerweise in der READMEDatei. Gelegentlich ist möglicherweise auch eine INSTALLDatei oder eine andere Dokumentation verfügbar. Wenn diese verfügbar sind, befolgen Sie die Anweisungen. Sie sind Ihre beste Wette.

    Wie andere gesagt haben, ist es leider sehr schwierig, die erforderlichen Build-Schritte ohne Anweisungen zu rekonstruieren. Wir können hier jedoch zumindest einen Best-Effort-Versuch unternehmen, der für die meisten einfachen Projekte geeignet ist.

  2. Da Anweisungen fehlen, müssen Sie als Nächstes prüfen, welches Build-Tool erforderlich ist.

    1. Wenn Sie eine Datei mit der Erweiterung .slnoder finden .vcxproj, handelt es sich wahrscheinlich um ein MSBuild / Visual Studio-Projekt. Laden Sie eine Kopie von Visual Studio Community oder Express (für C ++) herunter , öffnen Sie die Projektdatei dort und klicken Sie auf die Wiedergabeschaltfläche in der Symbolleiste (oder verwenden Sie das Erstellungsmenü).

    2. Wenn Sie eine finden Makefile, wird dies wahrscheinlich erforderlich sein make. Hier wird es jedoch noch schwieriger, da so viele unabhängige und inkompatible Systeme zum Einsatz kommen make.

      1. Da es auf Windows abzielt, wird es wahrscheinlich MinGW verwenden . Laden Sie eine Kopie davon herunter, starten Sie MSYS über Ihr Startmenü, navigieren Sie ( cd) zu dem Verzeichnis, das Ihr Projekt enthält, und führen Sie es aus make.

      2. In dem seltenen Fall, dass es sich stattdessen um Cygwin handelt (es gibt leider keine einfache Möglichkeit, dies festzustellen, aber wenn der MinGW Fehler mit einem "posix" -bezogenen Fehler ausgibt, ist dies eine anständige Wette), müssen Sie stattdessen Cygwin installieren . Leider werden dabei keine nativen Windows-Binärdateien erstellt. Sie müssen das Programm jedes Mal über Cygwin starten.

    3. Das "Build-Tool" kann ein benutzerdefiniertes Skript mit dem Namen build.batoder ähnlichem sein. In diesem Fall müssen Sie es entweder öffnen und nachsehen, was sich darin befindet, oder versuchen, es auszuführen und nach den Fehlern zu suchen. Wenn Sie es öffnen und die Erwähnungen von sehen GCC, kehren Sie zu 2.2.1 zurück. MinGW Schritt, aber führen Sie das benutzerdefinierte Skript statt make.

  3. Möglicherweise gibt es überhaupt kein Build-Tool. Wenn alles , was Sie stoßen auf eine einzelnes ist .coder .cppDatei, dann ist es wahrscheinlich einfach genug , dass Sie eine gerade Kompilierung tun können. Dies sind wieder fast immer MinGW , also laden Sie das herunter, starten Sie die MSYS-Shell, navigieren Sie zum Verzeichnis und rufen Sie entweder gccoder g++nach Bedarf auf - zgcc -o program.exe program.c

  4. Es ist möglich, dass nichts davon funktioniert. Wenn Sie zu irgendeinem Zeitpunkt Fehlermeldungen erhalten, enthalten diese möglicherweise einen Hinweis darauf, was fehlt. Möglicherweise fehlten Ihnen bestimmte erforderliche Frameworks oder Bibliotheken. Wenn Sie dies möchten, können Sie versuchen, diese herunterzuladen und Ihrer Build-Umgebung hinzuzufügen. Dies ist jedoch in der Regel kein trivialer Prozess und weist so viele Variationen auf, dass es keine gibt Weg, um sie in einer Antwort zu decken.


Glossar

Erstellen Sie Tools

Mit einem Build-Tool können Sie ein Projekt mit sehr wenigen Befehlen erstellen. Für die meisten Projekte mit mehr als einer Quelldatei wird irgendwo ein Build-Tool benötigt. Es gibt verschiedene Build-Tools, die häufigsten sind jedoch:

  • make , wird unter Linux überall und unter Windows immer häufiger verwendet. Projekte mit makekönnen in der Regel durch das Vorhandensein von a identifiziert werden Makefile.

  • MSBuild ist Windows-spezifisch und wird normalerweise in Verbindung mit Visual Studio angezeigt. Diese werden in der Regel von einem *.slnoder einer *.vcxprojDatei begleitet.

Werkzeugketten

Eine Toolchain ist der Compiler und die unterstützenden Tools. Genau wie bei den Build-Tools gibt es mehrere, die normalerweise mit einem der Build-Tools verwendet werden.

  • MSVC ist die Toolchain von Microsoft. Dies ist die am häufigsten verwendete Toolchain für die native Windows-Entwicklung. Dies wird normalerweise mit dem MSBuild-System verwendet, und Builds werden normalerweise über Visual Studio erstellt. Moderne MSVC-Projekte können jedoch auch verwendet Makefilewerden.

  • GCC ( MinGW ) ist ein Port von GCC für Windows. Normalerweise verwendet mit make. Wenn das Projekt von Haus aus auf Windows abzielt und eine hat Makefile, ist es wahrscheinlich für MinGW-GCC.

  • GCC ( Cygwin ) erstellt eine POSIX-kompatible Umgebung. Auf diese Weise können Sie die meisten für Linux oder Unix geschriebenen Programme direkt kompilieren und direkt unter Windows ausführen. In Windows 10 ist Bash unter Ubuntu unter Windows eine Alternative. GCC wird normalerweise in Verbindung mit verwendet make.

Frameworks und Bibliotheken

Bibliotheken sind wiederverwendbare Codesätze, die von anderen Personen geschrieben wurden und auf die viele Programme angewiesen sind, um das Rad nicht neu zu erfinden. Sie benötigen diese Abhängigkeiten, um das Projekt erstellen zu können. Wenn Sie Glück haben, werden sie mit Ihrem ersten Download mitgeliefert. Dies ist jedoch nicht immer der Fall.

Frameworks sind quasi eine Sammlung von Bibliotheken. Viele Projekte verwenden ein Framework, das Sie auch benötigen. Diese kommen oft mit einem eigenen Build-System, aber es wäre unmöglich, sie alle aufzulisten.

Am schwierigsten ist es, zusätzliche Framework- und Bibliotheksabhängigkeiten zu behandeln. Wenn das Projekt beispielsweise Qt verwendet, benötigen Sie das ganze Durcheinander, um es richtig zu erstellen. Dies ist ein riesiges Unterfangen, und es ist wahrscheinlich besser, andere um direkte Hilfe zu bitten, wenn Sie keine Vorkenntnisse haben.

Bob
quelle
1
In diesem speziellen Fall gibt Ihnen das Makefile einen guten Hinweis darauf, dass es für mingw wie die erste Zeile ist MINGW_PREFIX = $(shell which gcc | awk -F/bin/ '{ printf $$1 }'):)
DavidPostill
1
Dieser verdient das Kopfgeld imo
tbodt