Versuch, C ++ von Vim zu kompilieren und zu debuggen

8

Ich habe C ++ und Allegro mit Code :: Blocks unter Windows XP gelernt und vor kurzem Lust bekommen, Vim zu lernen. Ich habe jedoch keine Ahnung, wie man ein Programm "manuell" kompiliert (d. H. Ohne eine IDE zu verwenden).

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

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

Danke.

    
Caio 17.03.2009, 21:51
quelle

7 Antworten

4

Schau dir MinGW an. Ich würde Cygwin vermeiden, wenn du nur gcc brauchst und make. Sie werden sowohl MinGW als auch MSYS wollen. MSYS hat einen Windows-Port von make.

Wenn Sie sich für mehr Unix-Utilities für die Windows-Befehlszeile interessieren, empfehle ich CoreUtils .

>

Zum Lernen siehe das Handbuch

    
epochwolf 18.03.2009 00:04
quelle
4

Sie müssen nicht unbedingt ein Makefile benötigen, aber es ist die bevorzugte (und möglicherweise beste) Art, Code auf UNIX-ähnlichen Systemen zu kompilieren.

Ich weiß nicht, ob GNU Make einen Windows-Port hat, aber Sie können es wahrscheinlich unter Cygwin laufen lassen.

Um mehr über GNU Make und Makefiles zu erfahren:

Siehe auch diese Frage: direkt von vim kompilieren

Obligatorische Änderung: Ich verwende weder Windows noch Cygwin. Vielleicht möchten Sie epo-wolfs Ratschläge befolgen diese Abteilung.

    
Can Berk Güder 17.03.2009 22:00
quelle
3

Ich bin kein Experte in Makefiles und Debugging, aber ich weiß, dass Vim Sie viele Dinge tun lässt. 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 geben Sie Folgendes ein:

%Vor%

Tatsächlich können Sie (fast) jeden Systembefehl verwenden, indem Sie einfach "!" vor deinem Befehl. gdb funktioniert auch mit Vim

%Vor%

Ich hoffe, es wird dir helfen.

    
Taurus Olson 18.03.2009 00:51
quelle
2

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

%Vor%

Typisch sollte sich das devenv in C: \ Programme \ Microsoft Visual Studio 8 \ Common7 \ IDE befinden. 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. Setzen Sie einfach die folgenden Zeilen in Ihren vimrc:

%Vor%

Dann können Sie: make verwenden, um das Programm von vim zu kompilieren und zu erstellen.

    
AMing 28.07.2009 11:02
quelle
1

EDIT1: Ein paar Lesezeichen, die Sie vielleicht nützlich finden:

GNU make-Tutorial (dieses verwendet gcc und make, also sollte es genau in deiner Gasse sein)

Noch ein

Win-Port einiger GNU-Utils, die Can erwähnt hat; Ich persönlich benutze diese und hatte 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 innerhalb von 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 in Can Berk Guder erwähnte GNU-Marke eine populäre 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 einige andere Optionen auf diesem Link . Aufgrund seines Teils in der Geschichte hat vim gute Unterstützung für: make, aber auch andere können problemlos verwendet werden (es gibt viele Texte zu diesem Thema auf VimWikia .

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

    
Rook 17.03.2009 22:23
quelle
1

Solange Sie GNU-make installiert haben (mit cygwin oder mingw unter Windows), müssen Sie kein Makefile für Projekte mit einer einzigen Datei schreiben. Führen Sie einfach :make von vim aus, und das reicht.

Wenn Ihr Projekt aus mehreren Dateien besteht, müssen Sie ein Makefile schreiben (oder ein Äquivalent für scons, aap, (b) jam, ant, ...), stimmen Sie &makeprg in der Folge ab und Rufen Sie schließlich :make von vim auf. Sehen Sie sich die entsprechende Kategorie in vimtips an. Sie können den Compiler natürlich so ausführen, wie Sie jedes andere externe Tool ausgeführt hätten, aber Sie würden die Möglichkeit verlieren, zu der / den Zeile (n) des Fehlers (der Fehler) zu springen.

Hinweis: Wenn Sie die Win32-Version von vim und gcc-cygwin verwenden, müssen Sie die erhaltenen Fehlermeldungen übersetzen. Ich habe zu diesem Zweck ein Perl-Skript gepflegt, das nun Teil eines ist größere Suite (noch im Beta-Stadium)

In Bezug auf Ihre Frage zum Debuggen kann es im Moment unter Windows nicht von vim aus durchgeführt werden. Der einzige Debugger, der bisher integriert werden kann, ist gdb, aber nur unter Linux; Siehe das Projekt pyclewn (.sf.net).

    
Luc Hermitte 18.03.2009 10:30
quelle
0

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

Ссылка

Es setzt voraus, dass Sie den g ++ - Compiler verwenden. Wenn nicht, ändern Sie einfach den Namen in den von Ihnen verwendeten Compiler. Speichern Sie diese Datei in allen Dateien, die Sie invim / ftplugin / cpp.vim

installiert haben

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

    
ErikT 06.03.2010 22:33
quelle