Повышение связи, Visual Studio и контроль версий
Я использую Visual Studio 2008 и пишу некоторые вещи на C++. Я использую библиотеку Boost (это не только заголовок).
Таким образом, для ссылки на Boost требуется добавить каталог в двоичные файлы Boost в настройку проекта "Дополнительные пути компоновщика".
Однако не противоречит ли это контролю за исходным кодом? Если я проверю файлы проекта, не будет ли в них также включен абсолютный путь к библиотекам Boost на моем компьютере?
Я, очевидно, не хочу, чтобы это произошло, так что мне делать? Просто добавление каталога Boost в "Каталоги / Библиотеки Visual C++" не работает.
5 ответов
Добавление путей Boost в "Каталоги Visual C++" должно работать. Вы должны добавить путь включения <Full path here>\boost_1_39_0
(без повышения в конце)
и путь к библиотеке <Full path here>\boost_1_39_0\bin.v2\lib
(bin.v2 - это сценический каталог, который может отличаться в вашем случае).
Лично я храню источники повышения в моем контроле источников и использую относительные пути в настройках проекта.
Мы используем репозиторий, содержащий сторонние библиотеки, затем используем svn:externals
чтобы получить необходимые детали в базовый каталог проекта, наконец, используйте относительные пути для дополнительных каталогов include и библиотеки в файле проекта. Работает хорошо, единственным недостатком является то, что вы можете получить несколько буст-копий на жестком диске. Используя соединения (версия символических ссылок Windows только для каталогов, работает, по крайней мере, с Win2k, не уверен насчет NT), вы можете избавиться от потерянного пространства.
Мы помещаем все наши сторонние заголовки и библиотеки, используемые проектом, в дерево проекта в систему управления версиями. Это означает, что мы отслеживаем версию библиотек с источником.
Затем мы ссылаемся на каталоги include и source в свойствах проекта. Мы не используем каталоги Visual C++, поскольку это слишком сильно зависит от расположения файлов в разных системах разработчиков, а также не позволяет отслеживать версии библиотек.
Единственным исключением является платформа SDK при разработке с vc6.
Бесстыдный плагин: теперь мы управляем настройками нашего vc-проекта с помощью CMake, и это значительно облегчает эти задачи, особенно для больших проектов.
Вы говорите VS о Boost для каждого компьютера, а не для каждого проекта. Так же, как DirectX и другие библиотеки, которые не являются специфическими для проекта. Мы считаем разумным предположить, что повышение используется в более чем одном проекте.
Мы не отслеживаем внешний источник библиотеки в нашем проекте SCM, если мы не знакомы с деталями реализации (исправление или что-то еще). Для boost, directx, windows sdk, мы просто требуем, чтобы вы запустили соответствующий установщик и установили VC++ Directories
когда вы настраиваете свою среду разработки.
Я использую BOOST_ROOT
переменная окружения для некоторых вещей, и она работает нормально. Вы должны вручную создать его, а затем установить пути в файлах проекта как "$(BOOST_ROOT)\include
" а также "$(BOOST_ROOT)\lib
"(или все, что использует ваш макет). Каждый должен установить BOOST_ROOT
на своих машинах, чтобы указать на их Boost установить.