Ich arbeite an einer C ++ - Bibliothek. Letztendlich möchte ich es zusammen mit einigen Beispielen und Python- Bindungen für mehrere Plattformen (mindestens Linux und Windows) öffentlich verfügbar machen . Die Arbeit schreitet gut voran, aber im Moment ist das Projekt ziemlich chaotisch, nur in und für Visual C ++ integriert und überhaupt nicht plattformübergreifend.
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 erstellen, die für die Automake- Tools geeignet ist, um eine einfache Kompilierung auf mehreren Plattformen zu ermöglichen, aber ich habe diese noch nie zuvor verwendet. Da ich (den größten Teil) noch in Visual Studio codiere, muss ich auch irgendwo meine Visual Studio-Projekt- und Lösungsdateien aufbewahren.
Ich habe versucht, nach Begriffen wie "C ++ - Bibliotheksverzeichnisstruktur" zu googeln, aber es scheint nichts Nützliches zu kommen. Ich habe einige sehr grundlegende Richtlinien gefunden, aber keine kristallklaren Lösungen.
Beim Betrachten einiger Open-Source-Bibliotheken habe ich Folgendes festgestellt:
\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 Multi-Plattform-Entwicklung / Open Source-Projekten und bin ziemlich erstaunt, dass ich keine guten Richtlinien für die Strukturierung eines solchen Projekts finden kann.
Wie soll man ein solches Bibliotheksprojekt generell strukturieren? Was kann zum Lesen empfohlen werden? Gibt es einige gute Beispiele?