Mit welchen Tools entwickeln Sie C ++ - Anwendungen unter Linux?
Ich die Entwicklung von C++ - Anwendungen in einer Linux-Umgebung. Die Werkzeuge, die ich jeden Tag benutzen enthalten Eclipse mit dem CDT-plugin, gdb und valgrind.
Welche tools verwenden andere Leute benutzen? Gibt es etwas gibt, für Linux, dass Konkurrenten die Glattheit von Microsoft Visual Studio?
Kommentar zu dem Problem
Können Sie erklären, was Sie bedeuten, durch Glätte? Wollen Sie Leistung und Vielseitigkeit? Geschwindigkeit und Effizienz? Oder sind Sie mehr in lead-mich-durch-die-hand-gebunden-hinter-meinem-Rücken-schweres Gewicht-GUI-Schaltflächen und-Menüs? (Nicht, dass ich würde immer Platz dafür auf einer IDE für die Einschränkung von mir aus Dinge zu tun, die ich kenne, sind sicher.)
Schande auf mich wie ein reiner UNIX - Entwickler-aber ich muss gestehen, dass Microsoft Visual Studio ist die beste IDE verfügbar für C++ - Entwicklung.
@Clayton: diese Art von Frage kann problematisch sein. Wie wird Sie sich entscheiden, die Antwort zu akzeptieren, z.B. das "richtige"?
Lesen Sie einfach den letzten Teil, wie "Rivalen der Krankheit von Microsoft Visual Studio?" 😉 (war vereinbart)
InformationsquelleAutor der Frage Clayton | 2008-08-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich eine Menge von terminal-Fenster. Ich habe vim läuft auf interessante Quelle-Dateien, make und g++ Ausgabe auf einem anderen für compiler-Fehler oder ein gdb-Sitzung für runtime-Fehler. Wenn ich brauche Hilfe bei der Suche nach Definitionen, die ich laufen cscope und vim benutzen ist cscope Unterstützung zu springen.
Eclipse CDT ist meine zweite Wahl. Es ist schön, aber riesig, ungelenk und langsam im Vergleich zu vim.
Verwendung von windows terminal und vim ist sehr flexibel, da brauche ich nicht für die Beförderung von 400 MB Java mit mir herum, ich kann mit SSH-Sitzungen von jedem Ort aus.
Ich valgrind verwenden, wenn ich brauche zu finden, die ein Speicher-Problem.
Benutze ich
strace
zu sehen, was meine software macht auf einem system-call-Ebene. Damit kann ich sauber bis wirklich dumm den code zum aufrufentime(0)
vier mal hintereinander macht oder zu viele Aufrufepoll()
oder non-blockingread()
oder Dinge, wie der Aufrufread()
auf einem socket zu Lesen, 1 byte zu einem Zeitpunkt. (Das ist super ineffizient und faul!)Benutze ich
objdump -d
Besichtigung der Maschine code, vor allem für performance-empfindliche innere Schleifen. Das ist, wie ich finde, Dinge wie die Langsamkeit der array-index-operator auf strings im Vergleich zur Verwendung von Iteratoren.Benutze ich oprofile, zu versuchen, die hot-spots in den optimierten code, ich finde, es wirkt oft ein wenig besser als gprof, und es können Dinge tun, wie suchen für data-und instruction cache-misses. Das kann zeigen Ihnen, wo fallen einige hilfreiche prefetch-Tipps mit GCC
__builtin_prefetch
. Ich habe versucht, es zu finden hot mis-vorhergesagte Verzweigungen als gut, aber nicht bekommen konnte, für mich zu arbeiten.Update: ich habe festgestellt, dass die perf funktioniert wesentlich besser als oprofile. Zumindest auf Linux. Lernen perf und Liebe es, wie ich es Tue.
InformationsquelleAutor der Antwort Zan Lynx
g++ natürlich, aber auch Code::Blocks das ist eine absolut fantastische cross-Plattform-IDE (Win32, UNIX, Mac).
Ich benutze die nightly (mehr wie in letzter Zeit wöchentlich) baut aus dem SVN. Er hat fast alle Glocken und pfeift, die Sie erwarten würden von einer modernen IDE. Es ist wirklich eine wirklich fantastische Open-Source-Projekt.
Auch unter Linux bekommen Sie die Freude mit Valgrind das ist wahrscheinlich die beste Erinnerung tracker (es tut andere Dinge auch) Werkzeug, das man für Geld kaufen kann. Und es ist kostenlos 🙂 aufspüren von Speicher-Lecks und mehr mit Leichtigkeit.
Und es gibt einfach so viel mehr! Linux ist wie eine große dev-Plattform 🙂
(edit) Gerade realisiert, Sie haben erwähnt, Valgrind, die in Ihrer Frage, dumme, mich zum Lesen zu schnell.
InformationsquelleAutor der Antwort Adam
Wenn die Entwicklung von C++ - Anwendungen für linux, die ich lieber mit ein paar cmdline-tools.
Vim-erweitert mit einer Menge von plugins.
Gdb mit ddd, valgrind, libefence
und SCons (automake ist ein Schmerz in ... du weißt schon wo)
InformationsquelleAutor der Antwort zhengtonic
g++
emacs
bash-Kommandozeile
gdb-Modus im emacs (Typ M-X gdb)
machen
InformationsquelleAutor der Antwort Colin
emacs, cmake, gdb, git, valgrind. Es kann nicht so glatt, wie Visual Studio, aber es funktioniert gut, und es ist einfach zum hinzufügen von Funktionalität über bash-Skripting oder emacs lisp.
InformationsquelleAutor der Antwort thekidder
g++ und make
InformationsquelleAutor der Antwort andrewrk
Ich glaube KDevelop ist, was wäre der nächste von Microsoft Visual Studio.
Sie bekommen so ziemlich alles (außer leider VS-debugger ist in der Tat ein killer).
Seine bereits ausgereifte und seine Entwicklung ist sehr schnell und vielversprechend.
Es tatsächlich umzusetzen, ein paar Sachen, die Sie nicht einmal in VS. Zum Beispiel, open-header-Datei und cpp-Datei in der vertikalen tile-Modus, und der cursor synchronisiert in
ie: beim wählen der Funktionen der Prototyp, den Sie immer haben die Implementierung auf der rechten Seite.
KDevelop ein KDE-Projekt, sondern laufen auf Gnome. Anjuta ist ein gleichwertiges Projekt auf Gnome, aber ich finde es unbrauchbar für die eigentliche Arbeit. Für den rest der stack-gcc-make valgrind-ddd (gdb IDE) und python-scripting meinem code.
Wenn Sie ok sind, um zu versuchen, einen anderen Ansatz als die VS-IDE. Sie können prüfen, versuchen vim. Es dauert eine lange Zeit zu gewöhnen, um es, wenn.
InformationsquelleAutor der Antwort fulmicoton
Jetzt benutze ich Qt Creator. Es ist cross-Plattform und integriert sich ziemlich gut mit Qt, aber (natürlich) Sie haben die Möglichkeit der Erstellung einer standalone-Anwendung.
InformationsquelleAutor der Antwort gnud
Eclipse CDT ist wirklich ganz nett. Ich habe noch zu greifen, um Emacs von Zeit zu Zeit, aber ich Liebe wirklich die Indizierung, call Bäume, Art der Bäume, refactoring-Unterstützung (dachte es ist nichts, wie Java refactoring), etc. Syntax-highlighting ist sehr mächtig, wenn Sie es anpassen (können unterschiedliche Farben für lokale Variablen, Funktionsargumente, Methoden, etc.). Die code-completion ist wirklich praktisch auch. Ich habe hauptsächlich Eclipse 3.3, aber 3.4 ist auch toll.
Auch, vor allem bin ich mit dieser für eine etwas größere Projekt (~1e6 sloc) -- es kann overkill für das Spielzeug-Projekte.
InformationsquelleAutor der Antwort Pat Notz
Wenn ich entwickelte C++ - code auf linux, früher habe ich emacs als editor und als gdb-front-end. Später, als meine Firma gekauft SlickEdit für alle Programmierer, das ist eine nette IDE, vielleicht nicht auf dem Niveau von Visual Studio. Wir verwendeten gdb extensiv, mit der gelegentlichen Verwendung von valgrind und gprof. Ich empfehle die Verwendung einer Skriptsprache zur Ergänzung von C++ auf Tag-zu-Tag-Aufgaben. Ich ging von PERL zu python, um die aktuelle ruby. Alle von Ihnen den job zu erledigen und haben die stärken, wo C++ hat Schwächen. Und, natürlich, Sie haben alle die shell-Befehle zur Verfügung. Ich habe täglich mit sort(), uniq(), awk, etc. Und eine weitere Empfehlung ist ack, einen grep-Nachfolger.
InformationsquelleAutor der Antwort Yuval F
Benötigen Sie eine standard-toolchain + eine IDE.
Da gibt es nicht viel zu sagen über die standard-toolchain. Installieren Sie einfach z.B. unter Ubuntu/Debian über
Der interessante Teil ist über ein IDE.
Mein persönlicher Eindruck ist, dass heute - im 21. Jahrhundert - vi/emacs/machen/autotools/configure ist nicht genug für die Entwicklung von software-Projekten ab einer bestimmten Größe (... und ja, bitte, bitte, bitte mir die Schuld für das
ErbeKetzerei ...).Die IDE zu wählen, ist einfach eine Frage des Geschmacks. Finden Sie eine Menge von threads auf SOF. Hier ist ein permalink diskutieren, welche C++ - IDE kann das "beste": C++ - IDE für Linux.
InformationsquelleAutor der Antwort
Benutze ich die NetBeans C++ - plugin, das ist Super, und die Integration mit CVS und SVN. Die Projekt-management-Seite ist auch sehr gut. Ich war auf und läuft mit ihm in wenigen Minuten. Es ist ein beeindruckender IDE aber Java kann ein wenig träge.
InformationsquelleAutor der Antwort Rob
Gibt es wirklich alles, was Sie eventuell benötigen könnten?
InformationsquelleAutor der Antwort greyfade
Nie eine GUI zu sehen, außer ein gutes terminal mit tab-Unterstützung; halten Sie code, debugger, Ausgang, etc alle in separaten Fenstern und tab zurück und nach vorne wirklich schnell.
InformationsquelleAutor der Antwort Adam Hawes
InformationsquelleAutor der Antwort Nicolás
Neben vielen bereits aufgeführt ist, verwenden wir die autoconf toolset für die Implementierung unseres Programms zum Benutzer.
InformationsquelleAutor der Antwort Scottie T
Anjuta ist eine nette Idee, macht Linux-C++ dev-Recht angenehm als gut.
InformationsquelleAutor der Antwort OJ.
Ich bin ein anderer für KDevelop. Es hat eine sehr vielfältige Reihe von tools. Ich bin nicht wirklich vertraut mit VS und ob oder nicht es hat einen integrierten Zugriff auf die Konsole über seine Schnittstelle, aber KDevelop kann ermöglichen es Ihnen, eine konsole innerhalb der IDE, die finde ich immer sehr nützlich. Sie könnten immer geben Netbeans gehen jetzt, dass es full C/C++ - Unterstützung.
Andere als die, ich machen guten Gebrauch von gdb und der gui-basierten version, die ddd für Probleme mit dem code oder andere Fehler. Für Wegwerf-Programme, wie andere, die bereits gepostet - ich verwende g++ im terminal und stellen für einige größere Projekte.
InformationsquelleAutor der Antwort Patrick Loz
Eclipse CDT für die Bearbeitung, die SVN für die source-control, SCons build-management, CruiseControl für automatisierten builds und eine proprietäre unit-test-framework.
InformationsquelleAutor der Antwort lothar
Ich mit Eclipse+CDT unter Windows und Cygwin + g++ zum cross-kompilieren für Linux.
(Cross-Compiler gebaut werden crosstool, ein nettes Skript für die Generierung von cross-Compilern)
InformationsquelleAutor der Antwort mmmmmmmm
Mi die erste Wahl ist immer den emacs mit einer Menge von plugins: EZB gibt einige Puffer navigieren Sie zu den Ordnern, gdb, svn-oder git-integration... Das ist mi die erste Wahl mit Python zu.
Als zweite Wahl, Netbeans mit C++ plugin, ist sehr einfach und sehr mächtig, aber zu schwer denke ich.
InformationsquelleAutor der Antwort pyriku
Ich verwenden, was auch immer auf dem system. Ich bevorzuge Eclipse CDT als Redakteur und g++ als compiler. Allerdings, wenn eclipse ist keine option ich benutze vi, die ist auch gut.
InformationsquelleAutor der Antwort Vladimir Kocjancic
Eclipse incubation Projekt Linux Tools integriert C/C++ Development tools.
Es ist ein GUI-plugin zu integrieren Werkzeuge wie Valgrind, GProf, GCov, SystemTap etc in die Eclipse-C++ - CDT IDE.
Suche für Eclipse Helios-IDE für C/C++ Linux Entwickler (beinhaltet Bebrüten von Komponenten), (120 MB)
Fand diese nach zu bauen versuchen Linux-Tools verwenden der .psf-Datei zur Verfügung.
Zum Glück fand dieses Paket versteckt rechts unten auf der Helios-Pakete download-Seite.
Beachten Sie, dass dies ist ein incubation Projekt, so können Sie erwarten, dass die Unterstützung nur besser werden mit der Zeit.
Siehe Auch:
Für die aktualisierten Informationen über die Installation und die Verwendung der Eclipse Linux Tools Klicken Sie Hier
InformationsquelleAutor der Antwort GuruM
FlexeLint für die statische code-Analyse, zusätzlich zu oben genannten:
Eclipse mit CDT, gcc, make, gdb, valgrind, bash-shell.
Source version control: Clearcase oder git, je nach Projekt.
InformationsquelleAutor der Antwort David Khosid