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?
44
Antworten:
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:
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 Windows
oder zu suchen<application name> exe
.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 Windows
oder zu suchenMinGW 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
cmd
oder auspowershell
:cd c:\sources\hello
: Wechseln Sie in das Verzeichnis, in dem sich die Quelldatei (en) befinden.g++ helloworld.cpp -o helloworld.exe
: Hierhelloworld.cpp
ist der Name der Hauptquelldatei undhelloworld.exe
der Name der kompilierten ausführbaren Datei.-o
Wechsel auf:g++ helloworld.cpp foo.cpp -o helloworld.exe
.c
statt.cpp
und Sie sollten dengcc
Befehl statt verwendeng++
. Der Rest ist mehr oder weniger identischwahrscheinlich auchunbedingt 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.helloworld.exe
.1 Hinweis: Manchmal befindet sich
bin
unter den heruntergeladenen Dateien ein Ordner , der ausführbare Dateien / Binärdateien enthalten sollteSiehe 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
quelle
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.
quelle
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.
quelle
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:
Wenn Sie Glück haben, enthält das Projekt Anweisungen zum Erstellen, normalerweise in der
README
Datei. Gelegentlich ist möglicherweise auch eineINSTALL
Datei 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.
Da Anweisungen fehlen, müssen Sie als Nächstes prüfen, welches Build-Tool erforderlich ist.
Wenn Sie eine Datei mit der Erweiterung
.sln
oder 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ü).Wenn Sie eine finden
Makefile
, wird dies wahrscheinlich erforderlich seinmake
. Hier wird es jedoch noch schwieriger, da so viele unabhängige und inkompatible Systeme zum Einsatz kommenmake
.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 ausmake
.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.
Das "Build-Tool" kann ein benutzerdefiniertes Skript mit dem Namen
build.bat
oder ä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 sehenGCC
, kehren Sie zu 2.2.1 zurück. MinGW Schritt, aber führen Sie das benutzerdefinierte Skript stattmake
.Möglicherweise gibt es überhaupt kein Build-Tool. Wenn alles , was Sie stoßen auf eine einzelnes ist
.c
oder.cpp
Datei, 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 entwedergcc
oderg++
nach Bedarf auf - zgcc -o program.exe program.c
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
make
können in der Regel durch das Vorhandensein von a identifiziert werdenMakefile
.MSBuild ist Windows-spezifisch und wird normalerweise in Verbindung mit Visual Studio angezeigt. Diese werden in der Regel von einem
*.sln
oder einer*.vcxproj
Datei 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
Makefile
werden.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 hatMakefile
, 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.
quelle
MINGW_PREFIX = $(shell which gcc | awk -F/bin/ '{ printf $$1 }')
:)