Зачем мне нужна библиотека импорта библиотеки DLL, которую я не вызываю напрямую из моего исполняемого файла? - PullRequest
0 голосов
/ 29 октября 2018

У меня есть динамическая библиотека A.dll , которая используется B.dll . Я использую B.dll в исполняемом файле C.exe .

level 0: A.dll
level 1: B.dll
level 2: C.exe

Я получаю ошибку компоновщика в Visual Studio, утверждая, что компоновщик не может найти библиотеку импорта A.lib, даже если мой исполняемый файл не использует A.dll напрямую. Почему это? Я предполагал, что информация в A.lib будет скомпилирована в B.dll

1 Ответ

0 голосов
/ 29 октября 2018

Без кода я подозреваю, что открытый заголовок (и) для B включает заголовок для A, а заголовок A имеет комментарий #pragma (lib, "a.lib"). Шаблон, который вы описываете, будет нуждаться в B, чтобы зависеть только от A в его частном интерфейсе, а не выставлять что-либо непосредственно из A.

...