Связать статическую библиотеку с динамической библиотекой

У меня есть проект DLL Visual Studio 2019, и я хочу статически связать с ним библиотеку. Когда я использую символы из статической библиотеки в dll, она строится правильно. Однако, когда я связываю свой проект динамической библиотеки с исполняемым приложением, приложение выдает неразрешенную ошибку внешнего символа. Должен ли я также связывать статическую библиотеку с приложением?


person Uytab    schedule 23.04.2021    source источник
comment
Отвечает ли это на ваш вопрос? Статическое связывание DLL в Windows   -  person Pat. ANDRIA    schedule 23.04.2021


Ответы (1)


DLL — это двоичный файл, похожий на файл EXE, поэтому, когда вы связываете его со своей статической библиотекой, все зависимости должны быть удовлетворены. Файл EXE, связанный с этой динамической библиотекой, не знает о своих внутренних компонентах, таких как символы какой-либо статической библиотеки, и, следовательно, не должно быть никаких неразрешенных символов из-за статической библиотеки.

Единственный способ получить это — связать EXE со статической библиотекой и использовать некоторые символы из нее, но это не зависит от DLL.

Так что нет, если вы не используете что-то из статической библиотеки в своем файле EXE, вам не нужно связываться с этим.

person Devolus    schedule 23.04.2021