SQLite e googletest sono dotati di una versione a un solo file molto semplice da usare che rende semplice l'uso in altri progetti, poiché è sufficiente aggiungere un singolo file sorgente. Entrambi usano strumenti home-brew per creare il file sorgente combinato, quindi mi chiedo se esiste uno strumento più generico per questo? Dovrebbe richiedere un elenco di file di implementazione/header e sputare un'intestazione/fonte combinata e correggere gli include locali. Sto bene se non gestisce gli include condizionali/include con diversi #defines
prima di loro come Boost.Tuple/MPL li usa. Una tipica libreria di destinazione sarebbe qualcosa come l'ICU.Strumento per creare una fusione/combinare tutti i file sorgente di una libreria in uno per C/C++?
Strumento per creare una fusione/combinare tutti i file sorgente di una libreria in uno per C/C++?
risposta
Se i tuoi include sono definiti correttamente (ovvero, ci sono guardie in tutti i file di intestazione, e ogni intestazione/unità di codice contiene tutto ciò che richiede) quindi puoi farlo 'a metà manuale'. Individua l'intestazione di sistema includendoli e commentandoli, quindi crea un'intestazione che include solo tutto in ordine casuale e pre-processa l'intestazione (in gcc che sarebbe gcc -E
) e poi opererà in modo simile con le unità di codice.
Questo approccio manuale può essere ingombrante, ma se si ha solo bisogno di farlo una volta che andrà bene. Poi di nuovo, anche se la fusione dei file header potrebbe avere senso, preferisco non farlo. In realtà lascerei i file separati e, se ritieni necessario semplificare l'accesso, fornisci intestazioni di raggruppamento che includono solo gli altri. Questo è l'approccio adottato da alcune librerie di boost, in cui è possibile includere i dettagli di ciò che si desidera o una singola intestazione che include tutto il resto. Il codice può essere compilato/collegato in una lib statica e utilizzato come se fosse un singolo elemento.
Questo potrebbe essere un po 'interessante in ICU, che ha, in alcuni casi, incompatibili definizioni/include e miscele di C e C++ e un numero di file generati. Forse facci sapere come va?
(divulgazione: ICU sviluppatore)
provare questo https://github.com/vinniefalco/Amalgamate/ può essere può aiutare ...
- 1. Uno strumento per dirti quali sono i file sorgente necessari in un progetto C++?
- 2. Makefile per una libreria
- 3. Strumento o libreria per confrontare file xml
- 4. C'è uno strumento per Scala per pulire tutte le importazioni inutilizzate da tutti i file di codice?
- 5. Script PHP per scorrere tutti i file in una directory?
- 6. Python: come eseguire unittest.main() per tutti i file sorgente in una sottodirectory?
- 7. come faccio ad aprire TUTTI i file excel uno per uno ed eseguire una macro
- 8. Esiste uno script/strumento JAVADOCS simile per i file Javascript?
- 9. Come fare per creare file oggetto in una directory specifica
- 10. Esiste una libreria Java per analizzare i file PO gettext?
- 11. Esiste una libreria per decomprimere i file .Z usando VB.NET?
- 12. Uno strumento tasklist per matlab
- 13. Utilizzo dello strumento di copertura del codice Python per la comprensione e l'eliminazione del codice sorgente di una grande libreria
- 14. libreria C++ per creare file tar
- 15. Trova tutti i file in una cartella
- 16. gmake compila tutti i file in una directory
- 17. Esiste una libreria Delphi che restituisce tutti i percorsi di origine efficaci per un progetto?
- 18. Strumento per confrontare i file web.config
- 19. Quale strumento può decompilare una DLL nel codice sorgente C++?
- 20. Esiste uno strumento come doxygen per XSLT?
- 21. Come creare una libreria condivisa per TensorFlow su Travis-CI
- 22. Esiste uno strumento per i non sviluppatori (traduttori!) Per modificare i pacchetti di risorse?
- 23. creare una libreria di classi per un progetto sharepoint
- 24. Una correzione per tutti i problemi IE6
- 25. C'è uno strumento come mechanize per Android?
- 26. PowerShell: come creare una funzione come sorgente di un file?
- 27. Ottieni tutti i file da VSS per una data specifica?
- 28. Cercare una libreria fuzzing Java o uno strumento fuzzer con una buona API
- 29. Visual Studio: stampa di tutti i file sorgente in una soluzione?
- 30. Regex per i file in una directory
Quale sistema operativo? –
Windows o Linux, preferibilmente entrambi. Sto bene anche se lo strumento funziona solo su uno di essi. – Anteru