Из родного C ++ я хочу использовать libgit2
C-API, и я случайно использую Visual Studio 2013
,
Напомним, что Microsoft использует libgit2
для внутреннего git
поддержка в Visual studio
начиная с 2010/2012, как обсуждалось здесь:
Я вижу два варианта:
(1) Скачать, собрать & использование libgit2
за Visual Studio 2013
как описано здесь: http://libgit2.github.com/docs/guides/build-and-link/
(2) Код против libgit2
Библиотека C-API в комплекте / установлена внутри Visual Studio
(ЭТО ВОЗМОЖНО?)
Обратите внимание, что я хочу libgit2
C-API, и допустимо использовать любую версию, установленную с Visual Studio
,
Обоснование: я ленивый и не хочу собирать / устанавливать его отдельно; и, кажется странным (и, возможно, может вызвать проблемы), если у меня есть несколько libgit2
версии, установленные и работающие в одно и то же время (вероятно, не должно быть проблемой, но это все еще кажется странным). Предварительно созданный бинарный файл, который я мог бы установить напрямую с другого сайта, был бы другим вариантом.
ВОПРОС: Могу ли я сделать (2)? Где находятся заголовки (как мне настроить проект для них)?
Мы настоятельно рекомендуем вам не использовать версию libgit2, которая входит в состав Visual Studio. Это более старая версия libgit2, чем вы видите на libgit2.github.com который даже не совпадает с выпущенной версией библиотеки. Он включает в себя пользовательские исправления, которые были протестированы только внутри самой Visual Studio и могут дестабилизироваться с помощью libgit2 в вашем собственном приложении. Несмотря на то, что мы превращаем эти патчи в запросы извлечения, которые в конечном итоге включаются в libgit2, были случаи, когда нам приходилось быстро исправлять ошибки, которые не подходили бы для других пользователей библиотеки.
Кроме того, ни проект libgit2, ни Microsoft не поддержат вас, если вы попытаетесь пойти по этому пути.
Я очень заинтересован в предоставлении собственного пакета nuget для libgit2, чтобы это было проще. К сожалению, есть некоторые трудности в предоставлении этого на данный момент.
Пока это не доступно, я настоятельно рекомендую вам следовать инструкциям построить и связать libgit2.