2009-03-17 6 views
8

Ich habe C++ und Allegro mit Code :: Blocks unter Windows XP gelernt, und vor kurzem fühlte ich mich wie Vim zu lernen. Ich habe jedoch keine Idee, wie man ein Programm "manuell" kompiliert (d. H. Ohne eine IDE zu verwenden).Versuchen, C++ von Vim zu kompilieren und zu debuggen

Für das Kompilieren von innerhalb von Vim bin ich so weit gekommen, das makeprg auf gcc zu setzen, aber ich verstehe, dass ich auch ein makefile benötige. Was ist das und wie schreibe ich eins? Kann ich mit dem Makefile Bibliotheken wie Allegro verwenden?

Auch ich habe ziemlich lieben den CB-Debugger (ich benutze gdb). Ist es möglich, etwas ähnliches mit Vim zu tun?

Vielen Dank.

+2

Wenn Sie wirklich lernen wollen, Programme zu kompilieren (oder live zu leben!) Ohne eine IDE - was ich großartig finde - würde ich empfehlen, mit etwas zu beginnen, das NICHT Windows ist, auch wenn Sie vorhaben, dorthin zurückzukehren . –

Antwort

4

Sie müssen nicht unbedingt brauchen ein Makefile, aber es ist der bevorzugte (und möglicherweise sanest) Weg, um Code auf UNIX-ähnliche Systeme zu kompilieren.

Ich weiß nicht, ob GNU Make einen Windows-Port hat, aber Sie können es wahrscheinlich unter Cygwin ausführen. Machen

Um mehr über GNU zu erfahren und Makefiles:

Auch hierzu finden Sie diese Frage: compile directly from vim

Obligatorische Bearbeitung: Ich verwende kein Windows oder Cygwin. Sie könnten epochwolf's advice für diese Abteilung verwenden.

+1

NOOOooo ... vermeiden Cygwin um jeden Preis. Es ist langsam, hässlich und hat wirklich keinen Vorteil gegenüber nativen Windows-Apps. Wenn Sie gcc & verwandte Tools unter Windows benötigen, benötigen Sie 'mingw' und 'msys'. Es gibt auch eine native Version von make. – davr

+0

Hey, ich sage nur. Ich würde nicht wissen, ob Cygwin gut ist, ich benutze kein Windows. =) –

1

EDIT1: Einige Lesezeichen, die Sie vielleicht nützlich finden:

GNU make tutorial (dieses gcc verwendet und machen, so dass es bis Ihre Gasse sein sollte)

Another one

Win port einiger von GNU utils konnte Can erwähnen; Ich persönlich benutze diese und habe keine Probleme mit ihnen auf Windows-Plattform.


Ja, Sie können ohne das Makefile kompilieren. Wenn Ihr Programm einfach ist (z. B. nur eine Datei), können Sie es kompilieren, indem Sie den Compiler aufrufen und den Namen des Programms in dieselbe Zeile einfügen (erinnern Sie sich nicht daran, wie es mit gcc läuft). Natürlich kann dies, um die Dinge zu vereinfachen, einem Schlüssel in vim zugeordnet werden, so dass Sie nicht zur Eingabeaufforderung und zurück springen müssen.

Wenn Sie an einem größeren Projekt arbeiten, das aus mehreren Dateien besteht, ist ein Makefile nützlich. Es wird durch die Dateien "suchen", Abhängigkeiten bestimmen, sie in den Build einbinden, vielleicht die Quelldateien in ein Verzeichnis und die resultierende Exe-Datei in das andere legen und so weiter. Es ist also eher ein Verknüpfungs- und Aufbausystem als nur das Kompilieren. Obwohl die GNU-Marke, die in Can Berk erwähnt wird, eine beliebte Antwort ist, gibt es eine ganze Reihe anderer tooks zum "Makefiles erstellen" (Makefile ist zu einer Art Synonym für diese Art von Operation geworden) - hier können Sie Sehen Sie einige andere Optionen auf diesem link.Aufgrund seiner Rolle in der Geschichte hat vim eine gute Unterstützung für: make, aber andere können auch leicht verwendet werden (es gibt viele Texte zu diesem Thema auf VimWikia.

Nun, das ist es. Nur meine 0,2 Euro :)

4

Betrachten Sie MinGW. Ich würde Cygwin vermeiden, wenn du nur gcc und make brauchst. Sie werden sowohl MinGW als auch MSYS wollen. MSYS hat einen Windows-Port von make. Wenn Sie mehr Unix Utilities für die Windows-Befehlszeile interessiert, empfehle ich CoreUtils.

für das Lernen machen die manual

3

Ich bin nicht in Experten in Makefiles und Debugging sehen, aber ich weiß, dass Vim können Sie viele Dinge zu tun. Zum Beispiel, wenn Sie eine Datei mit gcc kompilieren möchten, ist es nicht sehr unterschiedlich von der üblichen Art und Weise. Im normalen Modus Typ: „“

:!gcc file.c -o file 

In der Tat Sie (fast) jedes System Befehl nur durch Hinzufügen verwenden können vor deinem Befehl. gdb funktioniert auch mit Vim

:!gdb 

Ich hoffe, es wird Ihnen helfen.

1

Solange Sie GNU-make installiert haben (mit cygwin oder mingw unter Windows), müssen Sie kein Makefile für Single-File-Projekte schreiben. Führen Sie einfach :make von vim, und das ist genug.

Wenn Ihr Projekt aus mehreren Dateien besteht, dann müssen Sie ein Makefile (oder ein Äquivalent für Scons, aap, (b) Marmelade, Ameise, ...) schreiben, stimmen Sie Ihre &makeprg in Konsequenz und schließlich Rufen Sie :make von Vim. Siehe die entsprechende Kategorie in vimtips. Sie können den Compiler natürlich so ausführen, als hätten Sie ein anderes externes Werkzeug ausgeführt, aber Sie würden die Möglichkeit verlieren, zu der oder den Zeile (n) des Fehlers zu springen.

Hinweis: Wenn Sie die Win32-Version von vim und gcc-cygwin verwenden, müssen Sie die erhaltenen Fehlermeldungen übersetzen. Ich pflegte, um ein Perl-Skript zu diesem Zweck zu pflegen, es ist jetzt Teil einer bigger suite (immer noch in der Beta-Phase)

In Bezug auf Ihre Frage über das Debuggen, kann es nicht von vim unter Windows für den Moment getan werden. Der einzige Debugger, der bisher integriert werden kann, ist gdb, aber nur unter Linux; Siehe das Projekt pyclewn (.sf.net).

2

Um vim mit devenv zu integrieren, können Sie devenv von Visual Studio verwenden, um das Projekt in vim zu kompilieren. Der Befehl wie folgt:

Devenv SolutionName /build SolnConfigName [/project ProjName [/projectconfig ProjConfigName]] 

Typicatlly, die devenv in C sollten: \ Programme \ Microsoft Visual Studio 8 \ Common7 \ IDE. Setzen Sie es auf den Pfad der Umgebung, um es von vim aufrufbar zu machen. Wir müssen vim auch die Fehlermeldungen erkennen lassen, die vom Befehlszeilen-Build-Tool devenv ausgegeben werden. Legen Sie einfach die folgenden Zeilen in Ihrer vimrc:

" Quickfix mode: command line devenv error format 
au FileType cpp set makeprg=devenv.com\ /Build\ Debug\ *[SolutionName]* 
au FileType cpp set errorformat=\ %#%f(%l)\ :\ %#%t%[A-z]%#\ %m 

Dann können Sie verwenden: make zu kompilieren und das Programm von Vim zu bauen.

0

Ich bin nicht sicher über das Debuggen, aber ich weiß eine einfache Möglichkeit, das aktuelle Programm zu kompilieren und auszuführen, wie ich ein kleines vim-Plugin dafür geschrieben habe.

http://pastebin.com/qc5Zp2P7

Es wird vorausgesetzt, dass der g ++ Compiler verwenden. Wenn nicht, ändern Sie einfach den Namen in den von Ihnen verwendeten Compiler. Speichern Sie diese Datei in den folgenden Verzeichnissen: vim/ftplugin/cpp.vim

Um das gerade geöffnete Programm zu kompilieren und auszuführen, geben Sie einfach shift-e im Nicht-Editiermodus ein.