Организация путей зависимости компилятора от внешних библиотек - PullRequest
2 голосов
/ 15 сентября 2010

В моей текущей команде мы организуем зависимости от заголовков внешних библиотек в настройках проекта следующим образом:

Настройки компилятора-> Дополнительно Включает:
d: \ src \ lib\ boost_1_43
d: \ src \ lib \ CxImage_6_00
...

Как видите, мы включаем точный номер версии библиотеки в наши пути.

advantage этот метод заключается в том, что мы всегда знаем, какая именно версия библиотеки используется в текущем проекте.Поскольку настройки проекта хранятся в нашем хранилище, у нас также есть полная история этих настроек.В случае изменения версии ответственный разработчик должен изменить настройки проекта и убедиться, что с новым выпуском нет проблем.

Большой disadvantage, который я вижу, заключается в том, что с каждой новой версией библиотекиМы должны коснуться каждого проекта, который его использует, и изменить пути.(Мы не хотим развертывать несколько версий одной библиотеки с нашим основным продуктом).И я могу сказать, что вы не заводите много друзей с этим повторяющимся процессом ...

Как вы решаете эту проблему в своем проекте среднего размера?
Есть ли «лучший опыт» в вашем опыте?

Меня особенно интересуют любые решения в среде Windows / Visual Studio 2008 с большим количеством подпроектов.

Спасибоза любой совет!

1 Ответ

2 голосов
/ 15 сентября 2010

Вы можете использовать листы свойств для простого управления общими свойствами проекта.

Мое предложение было бы настроить пользовательские макросы, организованные примерно так:

$(DependenciesPath)   => d:\src\lib\
$(BoostPath)          => $(DependenciesPath)boost_1_43\
$(CxImagePath)        => $(DependenciesPath)CxImage_6_00\

Тогда в свойствах вашего проекта вам нужно только сослаться на $(BoostPath) и $(CxImagePath), а не на конкретные версии. Вы можете переместить всю папку зависимостей и изменить отдельные пути зависимостей, просто изменив различные макросы в окне свойств.

...