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