В своей разработке (прежде всего C ++) я давно придерживался использования сборок вне исходного кода. То есть, мой источник , как правило , находится в /project/srcдиректории и строит жить в /project/build/bin/release, /project/build/bin/debugкаталоги. Я сделал это, потому что он сохраняет мои исходные каталоги чистыми от промежуточных файлов, у меня есть одно расположение для всех моих двоичных файлов, упаковка проще, очистка проще, а контроль версий проще. (Я что-то пропустил?)
Теперь я наследую (большой) проект, который использует сборки из исходного кода. Какова мотивация для этого типа структуры и каковы ее преимущества? (Меня больше всего волнуют причины инженерного уровня или типы личных предпочтений.)
Я надеялся, что «Разработка крупномасштабного программного обеспечения C ++» Лакоса взвесит это, но я пропустил это, если бы это произошло.
/project/src/bin/releaseили действительно все промежуточные и выходные файлы в /project/src? Последний может быть действительно беспорядком, если есть более дюжины исходных файлов, с первым все в порядке.
main.cpp изначально находясь на верхнем уровне вашего проекта, он по-прежнему создает отдельный каталог сборки cmake вдали от вашего источника на этом верхнем уровне. Я считаю, что MSVS похожа на Клиона и в этом отношении.