SQLite und googeltest kommen mit einer sehr einfach zu bedienenden Single-File-Version, die es ein Kinderspiel macht, sie in anderen Projekten zu verwenden, da Sie nur eine einzige Quelldatei hinzufügen müssen. Beide benutzen die Home-Brew-Tools, um die kombinierte Quelldatei zu erstellen, also frage ich mich, ob es ein allgemeineres Tool dafür gibt? Es sollte eine Liste von Implementierungs-/Header-Dateien aufnehmen und einen kombinierten Header/Quelle ausgeben und die lokalen Includes reparieren. Mir geht es gut, wenn es keine bedingten Includes/Includes mit unterschiedlichen #defines
vor ihnen wie Boost.Tuple/MPL verwendet. Eine typische Zielbibliothek wäre so etwas wie eine Intensivstation.Tool zum Erstellen einer Verschmelzung/Kombinieren aller Quelldateien einer Bibliothek in eine für C/C++?
Antwort
Wenn Ihre Includes korrekt definiert sind (das heißt, es gibt Wächter in allen Header-Dateien, und jede Header-/Code-Einheit enthält alle benötigten Includes), dann können Sie es halb-manuell tun. Lokalisieren Sie den Systemheader, fügen Sie sie hinzu und kommentieren Sie sie. Erstellen Sie dann einen Header, der einfach alles in zufälliger Reihenfolge enthält und die Kopfzeile vorverarbeitet (in gcc gcc -E
) und dann mit den Codeeinheiten ähnlich arbeitet.
Dieser manuelle Ansatz kann mühsam sein, aber wenn Sie es nur einmal tun müssen, wird es in Ordnung sein. Andererseits, auch wenn das Zusammenführen der Header-Dateien Sinn macht, möchte ich es lieber nicht tun. Ich würde die Dateien tatsächlich getrennt lassen, und wenn Sie das Gefühl haben, dass Sie den Zugriff darauf vereinfachen müssen, bieten Sie Bündel-Header an, die nur die anderen enthalten. Dies ist der Ansatz, den einige Boost-Bibliotheken verwenden, wo Sie die Details einfügen können, was Sie wollen, oder einen einzelnen Header, der alles andere enthält. Der Code kann in eine statische Lib kompiliert/verknüpft werden und so verwendet werden, als wäre es ein einzelnes Element.
Dies könnte eine Art interessant sein in ICU, die in einigen Fällen inkompatible definiert/enthält und Mischungen von C und C++ und eine Reihe von generierten Dateien. Vielleicht lassen Sie uns wissen, wie es geht?
(Offenlegung: icu Entwickler)
versuchen diese https://github.com/vinniefalco/Amalgamate/ kann es helfen kann ...
- 1. Befehl zum Auflisten aller Quelldateien in TCL
- 2. Kompilieren einer gemeinsamen Bibliothek unter Linux zum Targeting aller Distributionen
- 3. Visual Studio: Drucken aller Quelldateien in einer Lösung?
- 4. Online-Tool zum Crawlen einer Website und zum Abrufen aller Meta-Informationen für jede Seite
- 5. Tool zum Parsen einer Datei
- 6. Erstellen einer Liste aller Paare
- 7. Erstellen einer statischen Bibliothek in C
- 8. Erstellen einer Bibliothek für OpenWRT-Umgebung
- 9. Beste kostenlose Tool zum Erstellen einer Exe aus Java-Code?
- 10. Erstellen einer Chrome-Erweiterung zum Abrufen aller Seiten HTML
- 11. Android.mk Datei - einschließlich aller Quelldateien in verschiedenen Ordnern und Unterordnern
- 12. Einfache Möglichkeit zum Erstellen einer ERD für eine Datenbankentwurfsprüfung
- 13. Erstellen einer Java-Bibliothek "Groovy"
- 14. Erstellen .dylib dynamische Bibliothek von Quelldateien in Objective
- 15. Generische Methode zum Erstellen einer tiefen Kopie aller Elemente in einer Sammlung
- 16. Steuern einer animierten CC-Animation in Javascript
- 17. JS-Bibliothek zum Erstellen einer Mindmap wie Schnittstelle
- 18. Hinzufügen einer Methode zum Klassenobjekt einer Bibliothek
- 19. Erstellen einer Bibliothek für repetetive Funktionalität in CodeIgniter
- 20. Einfaches Tool zum Herunterladen aller importierten/enthaltenen WSDLs und Schemas
- 21. Erstellen aller Objekte mit Reflektion einer Objekteigenschaften!
- 22. Erstellen einer Klasse zum Speichern einer Sammlung für die Datenbindung?
- 23. Gibt es ein kostenloses Tool zum Erstellen einer XSLT-Vorlage basierend auf einer XSD-Datei?
- 24. Tool zum Extrahieren von SQL-Definition aus einer Paradox-Tabelle
- 25. C++ Code in eine gemeinsame Bibliothek erstellen
- 26. Verwenden einer Zeichnungsbibliothek zum Erstellen einer GUI
- 27. Desing-Muster zum Entwerfen einer Java-Bibliothek
- 28. Verwenden Sie Xamarin zum Erstellen einer plattformübergreifenden Bibliothek, die in nativen Apps verwendet werden kann.
- 29. Tool zum Map # include's
- 30. Eine Java-/Groovy-API zum Generieren von Groovy-Quelldateien
Welches Betriebssystem? –
Windows oder Linux, vorzugsweise beides. Mir geht es aber gut, wenn das Tool nur auf einem von ihnen läuft. – Anteru