Tengo un proyecto de C++ con varios archivos de origen y varios archivos de encabezado. A veces, quiero enviar a alguien mi proyecto (generalmente para un concurso de programación) y sería bueno si hubiera una forma automática de colapsar todos los archivos en un único archivo .cpp.Combinar archivos C++ en un único archivo de origen
Así que, por ejemplo, si tuviera a.cpp, a.h, b.cpp, b.h etc., quiero obtener una main.cpp que compile y ejecute correctamente. Si no hay ninguna herramienta disponible, imagino que todo lo que tiene que hacer es fusionar los archivos de encabezado y anexar los archivos fuente entre sí. ¿Sin embargo hay problemas con externos, incluyen dependencias y declaraciones directas?
Demasiadas respuestas para "evitar" la pregunta. No puedo comprimir mi proyecto porque el juez en línea espera que se compile y ejecute un único archivo cpp. – aramadia
La solución está en cambiar el juez. El juez debería preocuparse por encontrar un archivo MAKE y qué esperar como salida del archivo MAKE (por ejemplo, el nombre del ejecutable). Pero, por supuesto, eso no es una comodidad para ti. – wilhelmtell
Mi propuesta: utilice una opción de compilación como/E para VC 2015 para ejecutar solo el preprocesador. Cómo funciona: Genere un archivo .cpp, que incluya todos los archivos .cpp '#include" a.cpp " #include" b.cpp " ...' de su proyecto (¡no archivos .h!). A continuación, compile este único archivo .cpp con la opción/E. El resultado (stdout) es un archivo .cpp único, que contiene todo el proyecto. Eso no es conveniente y la salida no es realmente una belleza. Sin embargo, funciona. – mdew