Зависимости MSVC от ссылок

Я всегда использовал параметр Dependencies Visual Studio, чтобы убедиться, что, например, при создании моих проектов на С++ также создаются любые зависимые проекты LIB или DLL. Тем не менее, я продолжаю слышать, как люди упоминают "ссылки" и задаются вопросом, с VS 2010 на горизонте, я должен изменить, как я это делаю.

Есть ли какие-либо преимущества при использовании ссылок на зависимости или есть ли только функция .NET? В настоящее время я использую VS2008.

Ответ 1

Я предпочитаю использовать ссылки, поскольку они были введены для неуправляемого С++ в VS 2005. Разница (в неуправляемой перспективе разработчика С++) заключается в том, что ссылка хранится в файле .vcproj, тогда как зависимости проекта хранятся в .sln.

Это различие означает, что при повторном использовании проекта в разных решениях (и я часто это делаю) вам не нужно снова переопределять межпроектные отношения.

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

Ответ 2

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

Ссылка - это сборка, которая содержит типы, используемые в проекте. Аналогичная вещь в собственном проекте на С++ может быть включенными файлами, используемыми проектом и файлами .lib, которые связаны между собой (собственный проект на С++ "потребляет" эти элементы, даже если они не созданы на другом этапе решения).

Ответ 3

Раньше в VS2008 зависимость проекта от статической библиотеки автоматически приводила к тому, что в нее была бы включена правильная конфигурация (Debug | Release). Похоже, VS2010 потерял эту способность при переходе к msbuild. Вздох.