Перед тем, как начать этот проект, у меня сложилось ложное впечатление, что я был опытным в кодировании и в использовании Visual Studio 2010. Теперь я понимаю, что я был полностью погружен в себя.
Моя платформа для разработки - это 64-битная Windows 7, но мне нужно собрать как для 64, так и для 32-битных платформ. Я использую VS 2010 и OpenSSL 1.0.0e, хотя при необходимости могу использовать другой. Я пытаюсь создать статическую библиотеку (* .lib), которая будет включена в более крупный проект другими разработчиками. * .Lib, кажется, компилируется, но очевидно, что не все хорошо, так как тестовая программа прерывается.
Я не могу использовать * .dll с моей программой, это произошло с высоты, поэтому я пытался статически связать свою библиотеку с libeay32.lib и ssleay32.lib. Я только начал и хотел начать медленно при использовании чего-то нового, поэтому единственными двумя функциями, которые я пытаюсь вызвать из SSL, являются HMAC и EVP_sha512:
HMAC(EVP_sha512(), key, keyLen, lpBufferAddr, dwCurBufSize, hashOut, &len);
Я признаю, что, возможно, я делаю это совершенно неправильно, но у вас это есть. Честно говоря, единственное, что мне нужно, это криптографические функции и функции HMAC. Я мог бы использовать что-то еще, но мне сказали использовать OpenSSL. Во всяком случае, двигаться дальше ....
При создании тестовой программы, которая ссылается на мой библиотечный проект (который, в свою очередь, ссылается на две библиотеки OpenSSL), я получаю следующие ошибки компоновки:
error LINK2019: unresolved external symbol _HMAC@28 referenced in function "public: int _thiscall etc"
error LINK2019: unresolved external symbol _EVP_sha512@28 referenced in function "public: int _thiscall etc"
Я включил обе библиотеки в «Дополнительные зависимости» и включил их каталог в «Дополнительные зависимости библиотек».
Может кто-нибудь помочь мне с этим? Я обливался этим и пришел к печальному выводу, что я тупица. Я признаю, что создание статических библиотек из OpenSSL было достаточно сложным делом, и я даже не уверен, что у меня получилось с x64. Буду признателен за любую помощь и совет.