Wie kompiliere ich meine C++ - Programme in Cygwin. Ich habe gcc installiert. Welchen Befehl soll ich verwenden? Wie führe ich meine Konsolenanwendung aus, wenn sie sich in einer .cpp-Erweiterung befindet? Ich versuche, C++ mit einigen kleinen Programmen zu lernen, aber in Visual C++ möchte ich kein separates Projekt für jede kleine .cpp-Datei erstellen müssen.Kompilieren von C++ mit Cygwin
Antwort
Sie benötigen einen Befehl verwenden wie:
g++ -o prog prog.cpp
, dass eine einfache Form ist, die eine Eins-Datei C++ Projekt in eine ausführbare schaltet. Wenn Sie mehrere C++ Dateien haben, können Sie tun:
g++ -o prog prog.cpp part2.cpp part3.cpp
aber schließlich werden Sie wollen Makefiles für Bequemlichkeit einzuführen, so dass Sie nur die Bits kompilieren, die sich geändert haben. Dann werden Sie mit einem Ende Makefile
wie:
prog: prog.o part2.o part3.o
g++ -o prog prog.o part2.o part3.o
prog.o: prog.cpp
g++ -c -o prog.o prog.cpp
part2.o: part2.cpp
g++ -c -o part2.o part2.cpp
part3.o: part3.cpp
g++ -c -o part3.o part3.cpp
Und dann, beginnen Sie herauszufinden, wie Sie Ihre Makefiles zu schreiben, um sie flexibler (wie nicht eine separate Regel für jede C++ Datei benötigen), aber das kann für eine andere Frage gelassen werden.
In Bezug auf ein separates Projekt für jede C++ - Datei ist das überhaupt nicht notwendig. Wenn Sie sie alle in einem Verzeichnis habe und es gibt eine einfache Zuordnung von C++ Dateien in ausführbaren Dateien, können Sie die folgende Make-Datei verwenden:
SRCS=$(wildcard *.cpp)
EXES=$(SRCS:.cpp=.exe)
all: $(EXES)
%.exe: %.cpp
g++ -o [email protected] $^
dann den make
Befehl ausführen und es wird (intelligent) erstellen, um alle Ihre ausführbare Dateien. [email protected]
ist das Ziel und $^
ist die Liste der Voraussetzungen.
Und wenn Sie kompliziertere Regeln haben, heften Sie sie einfach unten an. Besondere Vorschriften wird bevorzugt auf die Musterregeln ausgewählt werden:
SRCS=$(wildcard *.cpp)
EXES=$(SRCS:.cpp=.exe)
all: $(EXES)
%.exe: %.cpp
g++ -o [email protected] $^
xx.exe: xx.cpp xx2.cpp xx3.cpp
g++ -o [email protected] $^
echo Made with special rule.
Sie benötigen g ++. Dann versuchen Sie g++ file.cpp -o file.exe
als Start. Später können Sie viel tippen vermeiden, indem Sie etwas über Makefiles lernen.
wenn Sie verwenden möchten, Cygwin Sie die normale gcc
Syntax
g++ -o foobar foobar.cpp
verwenden sollten, aber das nicht wirklich gut spielen mit Visual C++ . Ich rate Ihnen, einen Blick in Eclipse CDT zu werfen, wenn Sie GCC gegenüber dem visuellen C++ - Compiler bevorzugen.
Was ich tun, um eine CPP-Programm zu kompilieren:
g++ -Wall Test.cpp -o Test
-Wall enables warning and error messages to be shown
-o Test creates an Test.exe after compilation
Wenn Sie Dateien separat kompilieren wollen:
g++ -Wall -c File1.cpp
g++ -Wall -c File2.cpp
nun eine ausführbare Datei mit den kombinierten Objektdateien als erstellen:
g++ -Wall File1.o File2.o -o File.exe
Auf diese Weise können Sie Ihre Header-Dateien kompilieren und Sie können in Ihren Anwendungsprogrammen enthalten.
- 1. Problem Kompilieren mit Cygwin
- 2. Kompilieren von C++ - Code mit Cygwin für JNI (Android NDK)
- 3. Fehler beim kompilieren von sphinxbase in cygwin
- 4. Verwenden von Cygwin zum Kompilieren eines C-Programms; Ausführungsfehler
- 5. Kompilieren mit gcc (cygwin auf Windows)
- 6. Kompilieren Fisch Shell unter Cygwin?
- 7. Kompilieren stand alone exe mit Cygwin
- 8. Kompilieren pygraphviz: Unbekanntes Befehlszeilenoption '-mno-Cygwin'
- 9. Probleme beim Kompilieren von Boost-Programmen mit Cygwin
- 10. Kompilieren von C++ mit Soundtouch
- 11. "-bash: gcc: Befehl nicht gefunden" mit Cygwin beim Kompilieren von c?
- 12. Können Sie eine Cygwin-Anwendung statisch kompilieren?
- 13. GSL C++ in Cygwin Problem
- 14. kompilieren 32bit code von cygwin64
- 15. Kompilieren von C++ - Threads
- 16. C++ Recursive Datei/Verzeichnis Scannen mit Cygwin
- 17. Makefile funktioniert nicht mit Cygwin
- 18. Kompilieren von C++ - Programmen mit Emacs unter Windows
- 19. Kompilieren von C++ - Programm unter Windows XP
- 20. Objective-C Importe, primitive Typen mit Cygwin
- 21. Verwenden von Bash (Cygwin) in C# -Programm
- 22. Kompilieren von C++ mit gcc/g ++ Compiler
- 23. Kompilieren von C-Programm mit openwrt
- 24. Verwendung von Boost mit Cygwin unter Windows
- 25. Kompilieren von C# zu Native?
- 26. Cygwin ClearScreen von Bash
- 27. C - Kompilieren mit Abhängigkeiten enthalten
- 28. Kompilieren von MONO - C# mit Verweis auf eine C# -Bibliothek?
- 29. C++ nicht installiert in Cygwin
- 30. Einbetten von Windows Python in Cygwin/GCC C++ - Programm
Danke. Kann ich jedoch ein einzelnes Makefile erstellen, das eine C++ - Datei im selben Verzeichnis kompiliert, anstatt ein Makefile für jede spezifische CPP-Datei zu erstellen? –
Was ist die Erweiterung? .machen? Oder keine Erweiterung wie myMakefile –
@Mohit, diese Makefiles kompilieren jede CPP-Datei zu ihrer äquivalenten exe (der Platzhalter und das '%' -Muster sehen das). Per Konvention wird die Make-Datei als Makefile oder Makefile bezeichnet. Sie können einen anderen Namen wie bob.mk verwenden, aber dann müssen Sie "make -f bob.mk all" machen und nicht nur "make all". – paxdiablo