Я обычно позволяю VS, Qt / mingw и т. Д. Устанавливать себя там, где они хотели - т.е. я сохраняю настройки по умолчанию. Что касается моего src-code-tree и build-tree, я всегда тратил много времени и думал над их настройкой. Я начинаю с экспериментов с IDE (VS2008 в моем последнем случае), наблюдаю за поведением по умолчанию и только потом проектирую свое src-дерево и без bld. С VS2008 я пока использую относительно простое расположение:
C: \ PRJ \ common_lib_cpp
C: \ PRJ \ common_lib_cpp \ lib1
C: \ PRJ \ common_lib_cpp \ lib2
C: \ PRJ \ common_lib_csharp
C: \ PRJ \ common_lib_csharp \ lib3
C: \ PRJ \ my_exe_prj1
C: \ PRJ \ my_exe_prj2
Я немного упрощаю, но не сильно. Это работало хорошо для меня в течение 6 месяцев, никаких серьезных проблем. Когда я работал в Nuance некоторое время назад, дерево src было очень тщательно спроектировано, а система сборки на основе make была большой, сложной и надежной. В сборках Windows и Linux (несколько разновидностей) используется одно и то же дерево src. На самом деле это очень сложная задача. У Адриана Нигу (Nuance) были хорошие статьи в блогах и в Интернете по этой теме.