2010-12-02 2 views
2

Ich erstelle eine externe Bibliothek für den allgemeinen Gebrauch. Was ich fragen soll, sollte ich jede Klasse nur in .hpp-Dateien wie boost einfügen oder sollte ich es in eine lib-Datei kompilieren und die zwei Dateien pro Klassenregel behalten. Soweit ich sehen kann, wird .hpp für Geschwindigkeit verwendet, so dass Sie keine .lib für jede Klasse oder eine massive für die ganze Sache und für plattformübergreifende hinzufügen müssen.Sollte ich Header-only-Klassen oder lib-Dateien verwenden?

[Bearbeiten] Was ist Ihre persönliche Vorliebe und warum. Meine Bibliothek wäre nur für meinen persönlichen Gebrauch. [edit] Zum statischen Verknüpfen der Bibliothek

+2

Dies wird vollständig von mehr Faktoren abhängen, als möglicherweise benannt werden können. Tu was immer Sinn macht. Willst du ihnen die Quelle geben? Oder möchten Sie, dass sie sich mit einer Binärdatei verbinden? Das sind die 2 grundlegenden Optionen. – Falmarri

+0

Statische Verknüpfung oder dynamische Verknüpfung? – mkb

+0

@Matt Static Linking – Will03uk

Antwort

1

Dies hängt wirklich davon ab, ob Sie über plattformübergreifenden Code verfügen. Sie haben möglicherweise keine große Auswahl, wenn Sie die Mehrheit in Header-Dateien erstellen möchten, wenn Sie eine Menge Vorverarbeitung benötigen, um sie zu generieren. Ansonsten sollten Sie so weit wie möglich vorkompilieren, als eine allgemeine Regel.

3

Für eine Klasse, die in mehreren Compilierungseinheiten (cpp-Dateien) verwendet wird, möchten Sie möglichst kleine Header-Dateien haben, um die Build-Zeit niedrig zu halten. Der Großteil Ihres Codes sollte in eine cpp-Datei gehen.

+0

Nein, bei einer statischen Bibliothek sollte die Menge in viele kleine Quelldateien übertragen werden, so dass die Verknüpfung mit der Bibliothek nur die notwendigen Funktionen verknüpft. –

+0

Das gilt nur für bestimmte Linker, denke ich. Die MS-Toolchain (2008) entfernt beispielsweise nicht referenzierte Funktionen beim Kompilieren von Objektdateien mit/Gy und Verknüpfen der EXE mit/OPT: REF. – jonaskje

Verwandte Themen