Frage

Ich entschied mich zu verlassen, meine windows-Installation hinter und bin jetzt auf dem Debian als Standard-OS.Ich habe immer codiert, Windows und speziell mit Visual Studio.Ich bin derzeit versuchen zu bekommen verwendet, um meinen code kompilieren unter linux.

Obwohl ich immer noch haben eine Menge Dokumentation zu Lesen, und erwarte nicht, dass Sie Jungs machen es zu einfach für mich, es wäre immer noch schön, um sich einige Hinweise auf, wo zu beginnen.Ich habe einige spezifische Fragen, aber fühlen Sie sich frei zu empfehlen/empfehlen, alles andere rund um das Thema.

  • Was sind die empfohlenen Anleitungen zur Erstellung einer make-Datei, wie kann ich das kompilieren von diesem makefile (nenne ich g++ selbst, benutze ich "machen"?)
  • Ein Blick auf andere linux-software, die Sie fast immer zu haben scheinen, eine 'konfigurieren' - Datei.Was genau tut es?Es tut nur prüfen, ob die benötigten Bibliotheken installiert oder gibt es mehr als nur die überprüfung der Anforderungen?
  • Wie tun ich link-Bibliotheken, und wie wirkt sich dies auf mein makefile oder g++ - Parameter?In windows würde ich kompilieren der Bibliothek, einige header-Dateien, sagen, mein linker, was zusätzliche lib-Datei zu verknüpfen, und kopieren Sie eine dll-Datei.Wie genau funktioniert dieser Prozess in linux?
  • Empfehlungen für code-Editoren?Ich bin derzeit mit nano und ich habe gehört, vim und emacs sind, aber nicht wissen, was die Vorteile von Ihnen sind über einander.Gibt es irgendwelche andere, und warum sollte ich Sie betrachten über die letzten drei?Hinweis:Ich bin nicht auf der Suche nach einer IDE.

Jede Hilfe, links zu Reiseführern und Dokumentation (vorzugsweise diejenigen, die richtet sich an Anfänger) sind sehr geschätzt!

War es hilfreich?

Lösung

  

Was Führer auf die Schaffung einer Make-Datei empfohlen werden, wie kann ich von diesem Make-Datei kompilieren (ich nenne g ++ mich, verwende ich ‚machen‘?)

Sie bauen aus der Make-Datei durch den Aufruf „make“. Und in Ihrer Make-Datei, Sie kompilieren und verknüpfen mit g ++ und ld.

  

auf anderen Linux-Software sucht, scheinen sie fast immer eine ‚Configure‘ Datei zu haben. Was genau macht es? Ist es nur zu prüfen, ob die erforderlichen Bibliotheken installiert sind, oder tut es mehr als nur die Überprüfung Anforderungen?

Es ist ein Skript in der Regel verschiedene Dinge verwendet auf die Umwelt auf Basis einzurichten für den Bau verwendet werden. Manchmal ist es nur ein einfaches Shell-Skript, ein anderes Mal ruft sie Tools wie Autoconf zu entdecken, was verfügbar ist, wenn Bau. Der „konfiguriert“ Skript ist in der Regel auch ein Ort für den Benutzer verschiedene optionale Dinge zu spezifizieren gebaut oder ausgeschlossen werden, wie die Unterstützung für experimentelle Funktionen.

  

Wie kann ich Bibliotheken verknüpfen, und wie sich dies auf meine Make-Datei oder g ++ Parameter bezieht? In Fenster würde ich die Bibliothek kompilieren, sind einige Header-Dateien, sagen meine Linker, welche zusätzlichen Lib-Datei, zu verbinden und eine DLL-Datei kopieren. Wie genau funktioniert dieser Prozess Arbeit in Linux?

ld ist der GNU-Linker. Sie können es separat aufrufen (das ist, was die meisten Makefiles wird bis am Ende tut), oder Sie können g ++ Delegierten darauf haben. Die Optionen, die Sie g geben ++ und ld bestimmen, wo Bibliotheken zu suchen, enthalten Header, zu verbinden und wie das Ergebnis ausgegeben wird.

  

Empfehlungen für die Code-Editoren? Ich bin derzeit mit nano und ich habe von Emacs gehört, aber nicht wissen, was die Vorteile von ihnen über sie sind. Gibt es andere, und warum sollte ich halte sie über einen der letzten drei? . Hinweis: Ich bin nicht einen IDE

Emacs sind sehr flexibel Editoren, die eine ganze Reihe von unterschiedlichen Verwendungen unterstützen. Verwenden Sie, was am besten zu Ihnen fühlt, obwohl ich Sie würde vorschlagen, dass vielleicht ein paar minimale Dinge wie Syntax-Hervorhebung wollen.

Andere Tipps

Nur eine Notiz mit MandyK der Antworten zu gehen.

Dateien von Hand machen zu schaffen, ist in der Regel ein sehr unportable Weg über die Linux-Distribution für den Bau / Unix-Varianten. Es gibt viele Build-Systeme für die automatische Erzeugen von Dateien machen, bauen, ohne die Dateien zu machen. GNU Autotools , Cmake , Scons , Marmelade etc.

Auch mehr in der Tiefe zu konfigurieren gehen.

  • Prüft verfügbare Compiler, Bibliotheken, Systemarchitektur.
  • Stellt sicher, dass Ihr System die entsprechende kompatibele Paketliste übereinstimmt.
  • Hier können Sie Befehlszeilenargumente geben Sie Ihre Build zu spezialisieren, Installationspfad, Optionspakete usw.
  • Konfigurieren erzeugt dann eine entsprechende Makefile spezifisch für Ihr System.
  

Was zu empfohlenen Führer   eine Make-Datei zu erstellen, wie kann ich kompilieren   von dieser Make-Datei (ich nenne g ++   ich, verwende ich 'make'?)

Ich habe gelernt, wie Makefiles schreiben durch das Lesen der GNU Handbuch Make .

  

auf anderen Linux-Software sucht, sie   fast scheint immer zu haben   'Configure' Datei. Was genau tut es   machen? Ist es nur prüfen, ob die erforderliche   Bibliotheken installiert oder es funktioniert   mehr als nur die Überprüfung Anforderungen?

Die configure-Datei ist in der Regel im Zusammenhang mit Autotool . Wie der Name des Skripts vermuten lässt, ermöglicht es Ihnen, die Software zu konfigurieren. Aus der Sicht der Entwickler dies meist bedeutet Makros einstellen, welche Variablen bestimmen, die Bibliotheken zur Verfügung stehen, und so weiter. Es prüft auch für die Verfügbarkeit von Bibliotheken. Am Ende generiert das Skript eine GNU Makefile, die Sie dann auch tatsächlich nutzen können, um die Software zu bauen und installieren.

Das GNU-Build-System ist nur eine von vielen. Ich habe nicht besonders wie das GNU Build-System, wie es zu sein als andere langsamer neigt, und erzeugt eine hässliche Makefile. Einige der beliebtesten sind CMake , Jam ( Boost-Jam von Interesse für C ++ sein könnte) und waf . Einige Build-Systeme einfach Makefiles generieren, während andere ein völlig neues Build-System zur Verfügung stellen. Für einfache Projekte ein Makefile mit der Hand zu schreiben wäre leicht, aber „Abhängigkeitsprüfung“ (für Bibliotheken usw.) müßte auch manuell erfolgen.

Edit: Brian Gianforcaro auch diese darauf hingewiesen.

Ihre Frage ist ein bisschen zu allgemein, aber hier ist das, was ich würde recomment:

  • Editor: Emacs beliebt sind. Was zählt, die meisten, wie bei den meisten Tools, ist ein zu meistern. Ich mag mit vim, weil vi (sein Nachkomme) überall verfügbar ist, aber das ist vielleicht nicht sehr relevant sein, besonders, wenn Sie auf Linux bleiben. All Programmier-Editor ist in Ordnung.

  • configure: wenn Sie große Projekte tun, nicht die Mühe mit ihm. Es ist ein Alptraum zu verwenden und zu debuggen. Es macht nur Sinn, wenn Sie Ihr Projekt verteilen - in diesem Fall die autobook lesen: http: // Quellen .redhat.com / autobook / . Wie andere schon gesagt, gibt es Alternativen (cmake, scons, etc ...). Ich bin sehr vertraut mit den beiden scons und Autotools, aber ich benutze immer noch für kleine (einige Dateien) Projekte machen.

Bibliothek geteilt in Bezug auf: es ist fast wie Fenster, mit der Ausnahme, dass Sie einen Link an der gemeinsam genutzte Bibliothek direkt - es gibt keine LIB vs .dll Unterscheidung in Linux. Zum Beispiel. für eine Bibliothek foo mit einer Funktion foo:

int foo(void)
{
     return 1;
}

Sie würden es bauen wie folgt:

gcc -fPIC -c foo.c -o foo.o
gcc -shared foo.o -o libfoo.so

Ein Haupt (natürlich im wirklichen Leben Sie die API in einer Header-Datei) setzen:

int foo(void);

int main(void)
{
    foo();
    return 0;
}

Und dann, verknüpfen Sie es wie:

gcc -c main.c -o main.o
gcc main.o -o main -L. -lfoo 

Die -L. hier zu sagen ist, dass Sie der Linker sehen im aktuellen Verzeichnis will (im Gegensatz zu Windows ist dies niemals standardmäßig in Linux getan), die -lfoo sagt Link gegen die Bibliothek foo.

So erhalten Sie begann ich werde dich zuerst zu diesem Punkt Eclipse in der Regel, weil sie die Make-Datei als auch behandelt. Ganz zu schweigen von der Kompilierung und die Standardausgabe ist direkt zur Hand im Programm.
Es war vor allem die für die Entwicklung von Java, aber es ist ein C / C ++ Plugin auch!

Ich empfehle das Buch Die Kunst des Unix Programming von ESR. Es umfasst Wahl des Editor, Programmiersprache, usw. Es ist auch ein gutes Gespür für die Mentalität hinter der Programmierung unter Unix oder Linux gibt.

Für Redakteure, möchten Sie wahrscheinlich entweder Vim oder Emacs. Sie sind beide verschieden sind und welche besser ist, mehr über persönlichen Geschmack als alles andere. Ich verwende Vim. Es ist für rund um den Code schnell zu bewegen und Änderungen vornehmen. Ich mochte Emacs nicht so viel, aber viele Leute tun. Emacs ist extrem dehnbar und kann für alles von einem Newsreader zu einem ide verwendet werden. Probieren Sie beide und sehen, was Sie wollen.

  
      
  • Empfehlungen für Code-Editoren? Ich bin derzeit mit nano und ich habe von Emacs gehört, aber nicht wissen, was die Vorteile von ihnen über sie sind. Gibt es andere, und warum sollte ich halte sie über einen der letzten drei? . Hinweis: Ich bin nicht einen IDE
  •   

Wenn Sie Linux verwenden mit einem Window-Manager (KDE, Gnome, etc.) auch für Fenster-Manager mit dem Standard-Texteditor betrachten könnte. Der Hauptvorteil es über vim / emacs / nano hätte ist, dass es aus einer Windows-Umgebung kommt vertrauter man scheint - Redakteur geschrieben auf dem Window-Manager ausführen, um eine Menüleiste hat, Datei öffnen / Dialoge speichern, Undo / Redo und viele andere nette Features, die Konsole Editoren wahrscheinlich nicht mithalten können. (Obwohl Emacs und vim sind ziemlich anspruchsvoll in diesen Tagen, also wer weiß ;-P)

Auf KDE (das ist, was ich verwende) Ich KWrite empfehlen kann, das ist ein gut ausgestatteter, aber recht einfach Text-Editor mit Syntax-Hervorhebung; oder Kate, die einen schicken Texteditor mit einigen zusätzlichen Features ist: Session-Management, einen eingebauten Terminal-Panel, automatischen Aufruf von make und einige Plugins, die ein C / C ++ Symbol-Viewer. Normalerweise verwende ich Kate für meine C ++ arbeiten, wenn ich will nicht mit der Einrichtung ein vollständiges IDE-Projektes stören. (FYI die IDE für KDE ist KDevelop)

  

Empfehlungen für die Code-Editoren? ich bin   zur Zeit mit Nano und ich habe gehört, von   Emacs, aber nicht wissen, was die   Vorteile von ihnen sind über einander.   Gibt es andere, und warum sollte ich   betrachten sie über einen der vorhergehenden   drei? Hinweis: Ich bin nicht auf der Suche für ein   IDE.

Vi und Emacs sind die beiden fundamentalen Unix-Editoren; wenn Sie einen Texteditor zur Verwendung, anstatt eine IDE festgelegt sind, einer von ihnen oder deren Derivate (vim, xemacs, usw.) ist der Weg zu gehen. Beide unterstützen Syntax-Hervorhebung und alle möglichen Funktionen, entweder standardmäßig oder über Erweiterungen. Der beste Teil über diese Editoren ist die Erweiterbarkeit bieten; Emacs über eine Vielzahl von Lisp und vim über eine eigene Skriptsprache.

Ich persönlich Emacs verwenden, so kann ich über Vim nicht viel sagen, aber Sie sollten viele Informationen finden über sowohl online können. Emacs hat mehrere gute Tutorials und Referenzen, einschließlich diesem .

EDIT [Dezember 2014]: Es scheint in letzter Zeit ein Trend der plattformübergreifende und hoch ausfahrbaren Editoren zu sein. Dies könnte eine gute Wahl sein, wenn Sie etwas weniger als eine IDE mögen, aber mehr als graphische vi / Emacs und einheitliches Gefühl über mehrere Plattformen hinweg. Ich empfehlen, sich unter Sublime oder Atom ; diese beiden Arbeiten über Windows / Linux / Mac und haben große Gemeinschaften von Plugins und Themes.

der Raum g zwischen Aufrufen ++ direkt und mit Hilfe eines Autotool Build Kette ist ziemlich schmal. Erhalten Sie gut in Autotool, das ist wirklich die nächste Sache zu einem ‚Projekt‘ in der Linux / Open Source Welt.

Für jemanden, der aus Visual Studio, all das Kommandozeilen-Zeug mag geheimnisvoll erscheinen und chaotisch.Bevor du dich in eine bash-shell/vim/emacs-junkie, versuchen Sie, ein paar GUI-basierte tools, die ersten, so haben Sie einige übergangszeit...

  • QT 4.5 mit seiner QT-Creator-mini-IDE.Dies ist der beste Rahmen, Lichtjahre vor der Konkurrenz.
  • Eclipse (C++) - Aus meiner Erfahrung mit Windows, ich finde es erstaunlich, ( Dies ist wahrscheinlich der beste Java-Anwendung, die jemals geschrieben wurden )
  • KDevelop
  • Anjuta
  • Wenn Sie mit Delphi, Lazarus/FreePascal ist eine gute alternative.

Ich bin sicher, dass die longhairs wird, verspotten und behaupten, dass die vim oder emacs gibt Ihnen die beste und Schnellste Entwicklung Umwelt, aber unterschiedliche Hübe für verschiedene Leute.Jemand daran gewöhnt, eine IDE wird einige Zeit dauern zu wechseln oder nicht wechseln möchten, an alle.Für alle Ihre Bearbeitung Fähigkeiten, erstellen von GUI-Anwendungen ist sicherlich kein job für 80x25-tools.Es dauert Jahre, um sich einen Fachmann mit der Befehlszeile Seite der Dinge, seine mehr von einem Wandel der Weltanschauung als alles andere.

Als Randbemerkung zu den richtigen Antworten hier .. Falls Sie auf dem Boden aufschlug wanna als Windows-Typ ausgeführt wird, würde ich die neue, frische vorschlagen Qt SDK . Es wird sich wie zu Hause fühlen: -)

Ich rate SCons anstelle von Make verwendet wird, macht es die gleiche Arbeit, aber es ist einfacher zu bedienen und aus der Box umgehen, wie dynamische Bibliotheken zu machen, Abhängigkeiten, etc. Hier ist ein richtiges Beispiel für eine einfache prog

env = Environment()
env.Append(CCFLAGS='-Wall')
env.Append(CPPPATH = ['./include/'])

env.MergeFlags('-ljpeg')
env.ParseConfig("sdl-config --cflags --libs")
env.ParseConfig("curl-config --cflags --libs")
env.ParseConfig("pkg-config cairo --cflags --libs")

env.Program('rovio-pilot', Glob('./src/*.cpp'))

Als Texteditor, ich bin glücklich mit JEdit für die Codierung, aber es ist eine Frage des Geschmacks.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top