W moim rozwoju (głównie C ++) od dawna stosuję kompilacje spoza źródeł. Oznacza to, że moje źródło zazwyczaj siedzi w /project/src
katalogu i buduje żyć w /project/build/bin/release
, /project/build/bin/debug
katalogi. Zrobiłem to, ponieważ utrzymuje moje katalogi źródłowe w czystości od plików pośrednich, mam jedną lokalizację dla wszystkich moich plików binarnych, pakowanie jest łatwiejsze, czyszczenie jest łatwiejsze, a kontrola wersji jest łatwiejsza. (Czy coś przegapiłem?)
Dziedziczę (duży) projekt, który korzysta z kompilacji in-source. Jaka jest motywacja do tego typu konstrukcji i jakie są jej zalety? (Najbardziej interesują mnie przyczyny techniczne i przyczyny preferencji osobistych).
Miałem nadzieję, że „Wielkoskalowe projektowanie oprogramowania C ++” Lakosa będzie w to ważyć, ale spóźniłem się, gdyby tak się stało.
/project/src/bin/release
, czy naprawdę wszystkie pliki pośrednie i wyjściowe /project/src
? Ten ostatni może być naprawdę bałaganem, jeśli istnieje więcej niż tuzin plików źródłowych, pierwszy jest w porządku.
main.cpp
początkowo znajdujący się na najwyższym poziomie projektu, nadal tworzy osobny katalog budowania cmake z dala od źródła na tym najwyższym poziomie. Uważam, że pod tym względem MSVS jest podobny do Cliona.