Verzeichnisstruktur für eine C ++ - Bibliothek

Ich arbeite an einer C ++ - Bibliothek. Letztendlich möchte ich es für mehrere Plattformen (mindestens Linux und Windows) öffentlich verfügbar machen, zusammen mit einigen Beispielen undPython Bindungen. Die Arbeit schreitet gut voran, aber im Moment ist das Projekt ziemlich chaotisch, es wurde ausschließlich für und in Auftrag gegebenVisual C ++ und überhaupt nicht Multi-Plattform.

Daher halte ich eine Bereinigung für angebracht. Das erste, was ich verbessern möchte, ist die Verzeichnisstruktur des Projekts. Ich möchte eine Struktur schaffen, die für das geeignet istAutomake Tools zum einfachen Kompilieren auf mehreren Plattformen, die ich jedoch noch nie verwendet habe. Da ich immer noch (den größten Teil) der Codierung in Visual Studio vornehme, muss ich auch irgendwo meine Visual Studio-Projekt- und Lösungsdateien aufbewahren.

Ich habe versucht, nach Begriffen wie "C ++ - Bibliotheksverzeichnisstruktur" zu suchen, aber es scheint nichts Nützliches zu kommen. Ich fand einige sehr grundlegende Richtlinien, aber keine kristallklaren Lösungen.

Beim Betrachten einiger Open Source-Bibliotheken bin ich auf Folgendes gekommen:

\mylib
    \mylib <source files, read somewhere to avoid 'src' directory>
        \include? or just mix .cpp and .h
    \bin <compiled examples, where to put the sources?>
    \python <Python bindings stuff>
    \lib <compiled library>
    \projects <VC++ project files, .sln goes in project root?>
    \include? 
    README
    AUTHORS
    ...

Ich habe keine / wenig Erfahrung mit plattformübergreifenden Entwicklungs- / Open-Source-Projekten und bin ziemlich erstaunt, dass ich keine guten Richtlinien für die Strukturierung eines solchen Projekts finden kann.

Wie sollte man ein solches Bibliotheksprojekt generell strukturieren? Was kann zum Lesen empfohlen werden? Gibt es einige gute Beispiele?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage