Как настроить зависимости проекта MS Visual Studio 2005 для эффективной компиляции (c ++)? - PullRequest
0 голосов
/ 06 мая 2009

Как настроить зависимости проекта MS Visual Studio 2005 таким образом, чтобы изменение в проекте более высокого уровня не приводило к перекомпиляции всех других проектов, от которых оно зависит.

Если у меня есть 5 dll проектов, которые связаны по-разному ... В разделе «Проект» -> «Зависимости» я определил следующий проект вниз, но только вниз на один уровень. Когда я делаю небольшое изменение в вышестоящем проекте, выбирая «Build» -> «Build myLib», нижний проект также перекомпилируется ... Если я укажу все зависимости, то все зависимые проекты также будут перекомпилированы ... не так ли?

Если я уберу явную зависимость, нижний проект не будет перестроен, даже если он должен быть (как я и ожидал).

Что если у меня есть несколько уровней зависимости (A зависит от B, зависит от C и т. Д.)?

Ответы [ 3 ]

1 голос
/ 06 мая 2009

Что если у меня есть несколько уровней зависимости (A зависит от B, зависит от C и т. Д.)?

Выберите проект A из выпадающего списка, добавьте B в качестве зависимости. Аналогично, для B выберите C в качестве зависимости.

0 голосов
/ 06 мая 2009

В любом случае мои проектные зависимости установлены только на уровень:

  • Проект A зависит от библиотеки B
  • Проект A зависит от библиотеки C

Однако библиотека B также использует библиотеку C, но у меня нет этого набора в качестве зависимости. Кажется, это работает нормально.

Вы меняете заголовочные файлы? Конечно, если вы измените заголовки, любой проект, зависящий от этого заголовка, придется перестраивать независимо от того, настроены ли у вас зависимости проекта или нет.

0 голосов
/ 06 мая 2009

Как настроить MS Visual Studio 2005 проектные зависимости, такие, что делает изменение в проекте более высокого уровня не заставляет перекомпилировать все другие проекты, от которых это зависит.

Я думаю, вы имеете в виду:

Как настроить MS Visual Studio 2005 проектные зависимости, такие, что делает изменение в проекте более высокого уровня не заставляет перекомпилировать все другие проекты , которые зависят, возможно, косвенно, на это?

Я думаю, что вы используете такие термины, как «выше» и «ниже» в противоположном от меня смысле - для пары проектов я считаю «более низкий» проект тем, который зависит от другого. , Может случиться так, что ваша «ментальная диаграмма» просто перевернута по вертикали относительно моей, и это нормально; или это может быть связано с тем, что вы неверно истолковали то, о чем просит поле «Зависимости проекта», а это не так. Он запрашивает список проектов, от которых напрямую зависит именованный проект в раскрывающемся списке выше, а именно те проекты, которые должны быть обновлены (что, возможно, требует перестройки), прежде чем можно будет создать именованный проект.

Итак: не могли бы вы уточнить, в каком смысле вы намерены принять «выше» и «ниже».

То, что должен делать VC ++ (и я уверен, что это делает), когда вы просите построить какой-то проект X, это проверить, все ли проекты, от которых X напрямую или косвенно зависит, являются современными, и построить любой, который является не. Когда это здание происходит, каждый проект всегда создается после любых проектов, от которых он зависит, прямо или косвенно. Обратите внимание, что проекты могут потребовать перестройки, даже если они не были изменены сами - например, если X зависит от Y, а Y зависит от Z, то изменение Z и запрос на построение X влечет за собой сначала построение Z, , затем Y (который не был изменен), , затем X. Если есть даже «нижние» (в моем смысле) проекты, которые зависят от X, они не будут собраны, когда вы запросите сборку X.

...