2017-01-11 4 views
-1

Ich habe meinen Kopf nur ein wenig verloren, um die effektivsten Mittel zur Kompilierung eines C++ - Projekts zu finden. Ich halte mich an besser verwaltete Sprachen wie Java, so dass die CMake-Datei für mich etwas stumpf ist.Was als eine Bibliothek zu kompilieren?

Mein Hauptproblem ist, was ich als eine Bibliothek kompiliere und was kompiliere ich nur zusammen? Ich habe eine Hauptfunktion in meinem Programm mit verschiedenen über Klassen in verschiedenen Dateien mit Kopfzeilen. Was ist der normalste Weg, diese Dateien gemeinsam zu bearbeiten? Sollte ich die Hauptfunktion getrennt von den Klassen kompilieren, sie dann verlinken oder sollten sie eine gemeinsame Bibliothek sein, obwohl sie für eine Bibliothek ein bisschen klein ist?

Hauptsächlich suche ich nur nach allgemeinen Richtlinien, was zusammengelegt werden sollte, was einfach verknüpft werden sollte, und jemand, um die Normen/Best Practices, wie das alles funktioniert, klarer zu erklären.

Ich verstehe, dass der Compiler die Header- und Quelldateien in Objektdateien konvertieren muss und sie dann als Binärdatei kombiniert. Ich bin nur verwirrt darüber, was in die Binärdatei gehen soll.

+0

Wenn es einige Methoden gibt, die auch von anderen Prozessen benötigt werden, dann ist es besser, sie in eine Bibliothek zu stellen. Wenn Sie nur die einzelne Binärdatei bereitstellen möchten, müssen Sie die Bibliothek statisch machen, aber dadurch wird die Binärgröße erhöht. – VivekD

+2

Im Zweifel: Verwenden Sie keine Bibliothek. Wenn das Projekt wächst, erfahren Sie, wann Sie den Code in Bibliotheken und Binärdateien aufteilen müssen. – usr1234567

+1

Verwenden Sie eine Bibliothek in fast den gleichen Fällen, in denen Sie ein nicht ausführbares jar in Java verwenden würden. – user4581301

Antwort

1

Wenn Sie den Code nur für eine ausführbare Datei benötigen, können Sie einfach alle Objektdateien miteinander verknüpfen. Bibliotheken sind nützlich, wenn Sie dieselben Funktionen/Objektdateien in verschiedenen ausführbaren Dateien benötigen.

Natürlich können Sie, je größer ein Projekt wird, auch Unterprojekte verwenden, die Bibliotheken ausgeben und dann die Hauptprojektdateien und die Unterprojektbibliotheken miteinander verbinden.

Verwandte Themen