En mi desarrollo (principalmente C ++), me he adherido al uso de compilaciones fuera de la fuente. Es decir, mi fuente por lo general se encuentra en un /project/src
directorio y la acumula en vivo en una /project/build/bin/release
, /project/build/bin/debug
directorios. He hecho esto porque mantiene mis directorios de origen limpios de archivos intermedios, tengo una ubicación para todos mis archivos binarios, el empaquetado es más fácil, la limpieza es más fácil y el control de versiones es más fácil. (¿Yo me perdí algo?)
Estoy heredando un proyecto (grande) ahora que usa compilaciones en la fuente. ¿Cuál es la motivación para este tipo de estructura y cuáles son sus ventajas? (Me preocupan más las razones de nivel de ingeniería frente a los tipos de razones de preferencia personal).
Esperaba que el "Diseño de software C ++ a gran escala" de Lakos lo hubiera influido, pero lo extrañaría si lo hiciera.
/project/src/bin/release
, o realmente todos los archivos intermedios y de salida /project/src
? Este último puede ser realmente un desastre si hay más de una docena de archivos fuente, el primero está bien.
main.cpp
inicialmente estando en el nivel superior de su proyecto, todavía crea un directorio de compilación de cmake separado de su fuente en ese nivel superior. Creo que MSVS es similar a Clion en este aspecto también.