Что на самом деле делает параметр компоновщика «Link Library Dependency» в Visual Studio 2010–2015 и более поздних версиях?

До VS2008 вы устанавливали собственный C ++ зависимости проекта в файле решения ( Зависимости проекта ... ), и если (по умолчанию) установлен параметр компоновщика

Properties -> Linker -> General : Link Library Dependencies = Yes

, сборка Visual Studio будет автоматически связываться с .lib файлы всех проектов (DLL, LIB), от которых зависит этот проект, будут «статически» связаны.


Сторона Примечание: Microsoft изменила способ работы зависимостей в VS2010 , и теперь вы должны добавить зависимость непосредственно в проект

Common Properties -> Framework and References : (List of depenencies) 

    (each lib/dll has a separate option: 
     Project Reference Properties -> Link Library Dependencies : True|False

. Меня это устраивает. Это не , о чем этот вопрос.

(Одно объяснение здесь: Гибкие ссылки между проектами .)


Однако все еще возможно определить зависимости проекта на уровне решения и Общие Параметр компоновщика все еще там. Однако это не работает. См.:

и особенно см. здесь (далее следует фактический вопрос )

Где Microsoft подтверждает, что Linker Option не выполняет то, что от него ожидает остальная часть населения мира, и добавляет следующее объяснение:

Спасибо за сообщение об этом отзыве. Проблема, с которой вы столкнулись, является преднамеренной. «Зависимость библиотеки ссылок» - это флаг, который только указывает , передавать ли библиотеку в качестве входных данных компоновщику. Он не находит зависимость автоматически. Как клиент, вам придется определять зависимость вручную, как вы предлагаете.

Может ли кто-нибудь объяснить, что это означает , или более конкретно: Что на самом деле делает параметр компоновщика «Зависимость библиотеки ссылок» в Visual Studio 2010?

Что такое ввод к компоновщику ", который на самом деле не должен быть связан?

53
задан Martin Ba 11 February 2019 в 13:33
поделиться