Привет, у меня есть проект DLL в VS08, и он ссылается на некоторый код из lib32eay.dll (openssl). Когда я создаю dLL, он отлично работает на моей машине, так как у меня установлен openssl. Однако мои клиенты не имеют openssl, поэтому они получат ошибку при запуске моего приложения, поскольку оно ссылается на dll openssl. Как мне создать проект DLL, чтобы он мог включать все необходимые материалы, поэтому мне не нужно беспокоиться о том, что у клиентов нет недостающих сторонних библиотек и т. Д.?Библиотека связывания HELP в DLL-проекте
0
A
ответ
0
Вы должны статически связывать openssl внутри своего проекта. Используйте статически связываемые .lib-файлы в папке openssl lib и ваши проблемы исчезнут
1
Один из вариантов, который не требует, чтобы lib32eay.dll присутствовал вообще, заключается в том, чтобы создать его как статическую библиотеку (.lib) вместо общая библиотека (.dll). Затем вы свяжете свою собственную DLL с статической библиотекой, и клиентам придется беспокоиться о связи с вашей DLL.
привет, я пробовал это на странице свойств-> Свойства конфигурации-> Linker-> Input-> Additional Dependencies "Я установил " C: \ OpenSSL \ lib \ libeay32.lib C: \ OpenSSL \ lib \ ssleay32 .lib $ (NOINHERIT) " Это позволяет связать статическую библиотеку с openssl, чтобы ее можно было скомпилировать правильно, но почему она все еще жалуется на отсутствие lib32eay.dll? – 2009-12-01 02:14:14
В Windows файл .lib может быть либо статической библиотекой, либо библиотека импорта для DLL. Похоже, вы связываетесь с библиотекой импорта вместо статической библиотеки. Вам нужно либо получить предварительно скомпилированную статическую библиотеку OpenSSL, либо скомпилировать ее самостоятельно. – cwick
Эй, спасибо, cwick Я только что нашел, что это так после перекомпиляции openssl я понимаю, что есть статическая версия lib32eay.lib, а также версия для DLL. Статическая версия был 3 МБ, тогда как один для DLL был меньше на 800Kb, так что я думаю, это то, что вы имеете в виду. Я правильно указал дополнительные зависимости к более крупной версии и voila, которые она строит и работает без DLL. – 2009-12-01 13:19:11