70 / 47 / 5
Регистрация: 10.01.2017
Сообщений: 1,848
1

Boost beast + OpenSSL - не компилируется

24.10.2021, 18:22. Показов 1611. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте,

Подскажите пожалуйста, кто нибудь пробывал собирать пример из Boost beast синхронного HTTPS клиента ?

https://www.boost.org/doc/libs... nc_ssl.cpp

У меня не хочет компилируется. Ошибка неразрешенного внешнего символа. Windows10, VS2019.

Из примера буста я убрал почти весь код, и оставил только это:

C++
1
2
3
4
5
6
#include <boost/beast/ssl.hpp>
 
int main()
{
   
}
И вот эти две строчки кода выдают вот эти ошибки:

Ошибка LNK2019 ссылка на неразрешенный внешний символ __imp_CertOpenStore в функции capi_open_store. ConsoleApplication1 C:\Users\Optimus1\source\repos\VS2019\ConsoleApplication1\ConsoleApplication1\li bcrypto.lib(libcrypto-lib-e_capi.obj) 1

Ошибка LNK2019 ссылка на неразрешенный внешний символ __imp_CertCloseStore в функции capi_find_key. ConsoleApplication1 C:\Users\Optimus1\source\repos\VS2019\ConsoleApplication1\ConsoleApplication1\li bcrypto.lib(libcrypto-lib-e_capi.obj) 1

Ошибка LNK2019 ссылка на неразрешенный внешний символ __imp_CertEnumCertificatesInStore в функции capi_find_cert. ConsoleApplication1 C:\Users\Optimus1\source\repos\VS2019\ConsoleApplication1\ConsoleApplication1\li bcrypto.lib(libcrypto-lib-e_capi.obj) 1

Ошибка LNK2019 ссылка на неразрешенный внешний символ __imp_CertFindCertificateInStore в функции capi_find_cert. ConsoleApplication1 C:\Users\Optimus1\source\repos\VS2019\ConsoleApplication1\ConsoleApplication1\li bcrypto.lib(libcrypto-lib-e_capi.obj) 1

Ошибка LNK2019 ссылка на неразрешенный внешний символ __imp_CertDuplicateCertificateContext в функции capi_load_ssl_client_cert. ConsoleApplication1 C:\Users\Optimus1\source\repos\VS2019\ConsoleApplication1\ConsoleApplication1\li bcrypto.lib(libcrypto-lib-e_capi.obj) 1

Ошибка LNK2019 ссылка на неразрешенный внешний символ __imp_CertFreeCertificateContext в функции capi_find_key. ConsoleApplication1 C:\Users\Optimus1\source\repos\VS2019\ConsoleApplication1\ConsoleApplication1\li bcrypto.lib(libcrypto-lib-e_capi.obj) 1

Ошибка LNK2019 ссылка на неразрешенный внешний символ __imp_CertGetCertificateContextProperty в функции capi_cert_get_fname. ConsoleApplication1 C:\Users\Optimus1\source\repos\VS2019\ConsoleApplication1\ConsoleApplication1\li bcrypto.lib(libcrypto-lib-e_capi.obj) 1

Ошибка LNK1120 неразрешенных внешних элементов: 7 ConsoleApplication1 C:\Users\Optimus1\source\repos\VS2019\ConsoleApplication1\x64\Debug\ConsoleAppli cation1.exe 1
Как видно тут нет ошибок подключения либы OpenSSL или Boost`а - они подключились корректно, но почему эти то ошибки возникают ??
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2021, 18:22
Ответы с готовыми решениями:

Не компилируется с OpenSSL
День добрый. Начал осваивать библиотеку OpenSSL, пишу теста ради следующий код : #include...

Boost не компилируется
Пытаюсь кое-что создать. Для этого пришлось воспользоваться сторонней библиотекой. Но какую бы я не...

Не компилируется файл. Не могу нормально подключить boost
Помогите, не могу подключить boost. Скачал последнюю версию на офф.сайте. Запустил boostrap (он все...

Как вкатиться в boost beast?
Дока выглядит обрывочно. Я не могу в голове представить структуру сервера. Может есть книги по...

Скачать html страницу (boost.beast)
Всем доброе время суток, дали задачу реализовать crawler,скачать html страницу необходимо с помощью...

7
18838 / 9839 / 2406
Регистрация: 30.01.2014
Сообщений: 17,278
24.10.2021, 18:27 2
Лучший ответ Сообщение было отмечено Optimus11 как решение

Решение

Optimus11,
Код
Crypt32.lib
подключили?
1
70 / 47 / 5
Регистрация: 10.01.2017
Сообщений: 1,848
24.10.2021, 18:30  [ТС] 3
Цитата Сообщение от DrOffset Посмотреть сообщение
Optimus11,
Код
Crypt32.lib
подключили?
Нет, по причине, что такого файла просто на просто нет в собранных либах OpenSSL.

Да такого файла вроде бы и не должно даже быть. На гитхабе сказано вот такое:

C++
1
2
3
4
5
Инструментарий OpenSSL включает:
 
libssl - реализация всех версий протокола TLS до TLSv1.3 ( RFC 8446 ).
 
libcrypto - полнофункциональная криптографическая библиотека общего назначения. Он составляет основу реализации TLS, но также может использоваться независимо.
Вот libssl.lib и libcrypto.lib есть и они к проекту подключены.
0
18838 / 9839 / 2406
Регистрация: 30.01.2014
Сообщений: 17,278
24.10.2021, 18:34 4
Цитата Сообщение от Optimus11 Посмотреть сообщение
Нет, по причине, что такого файла просто на просто нет в собранных либах OpenSSL.
Этот файл не часть OpenSSL.
1
70 / 47 / 5
Регистрация: 10.01.2017
Сообщений: 1,848
24.10.2021, 18:36  [ТС] 5
Цитата Сообщение от DrOffset Посмотреть сообщение
Этот файл не часть OpenSSL.
А что это за файл и как узнать, что он должен быть подключен ?

PS: Гугл говорит, что это это файл Винды. Подключил этот crypt32.lib - заработало!
Но, как Вы узнали, что его не хватает ?
0
18838 / 9839 / 2406
Регистрация: 30.01.2014
Сообщений: 17,278
24.10.2021, 18:46 6
Цитата Сообщение от Optimus11 Посмотреть сообщение
А что это за файл
Wincrypt используется в libcrypto.
Цитата Сообщение от Optimus11 Посмотреть сообщение
как узнать, что он должен быть подключен ?
В данном случае узнать можно из текста ошибки.
Например, линкер просит функцию CertFindCertificateInStore
Идете сюда: https://docs.microsoft.com/en-us/search/
Вбиваете: "CertFindCertificateInStore"
Открываете первую ссылку из выдачи.
Листаете в самый низ и видите:
Код
Library 	Crypt32.lib
Это указание на то, что должно быть подключено, чтобы указанная функция могла быть использована.
1
70 / 47 / 5
Регистрация: 10.01.2017
Сообщений: 1,848
24.10.2021, 18:46  [ТС] 7
А почему в каком нибудь хедера буста - этот файл автоматически не подключен ?
0
18838 / 9839 / 2406
Регистрация: 30.01.2014
Сообщений: 17,278
24.10.2021, 18:49 8
Цитата Сообщение от Optimus11 Посмотреть сообщение
Почему в документации boost ничего не сказано про Crypt32.lib
Потому что boost тут не при чем.
Это зависимость libcrypto.
1
24.10.2021, 18:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.10.2021, 18:49
Помогаю со студенческими работами здесь

Не компилируется пример с использованием boost из книги
Visual Studio 10, Windows 7. Решил попробовать использовать boost. Выбрал пример 10.19 чтения...

HTTPS запрос к Telegram API с Boost Beast & Boost Asio (Не работает)
#include &quot;root_certificates.hpp&quot; #include &lt;boost/beast/core.hpp&gt; #include...

Boost начало работы: Undefined reference to `boost::system::generic_category() '
Добрый день Собственно говоря возникла необходимость использовать boost в работе. Поставил так: ...

2133MHz Kingston HyperX Beast и процессор Intel core i7 950 совместимо ли?
подойдёт ли эта память DIMM DDR3 8192MBx2 PC17000 2133MHz Kingston HyperX Beast или DIMM DDR3...

Boost Log - undefined reference to `boost::system::system_category()'
Пытаюсь скомпилировать код из примеров Boost Log:#include &lt;boost/log/trivial.hpp&gt; int main(int,...

Использование boost и boost.build с несколькими компиляторами
Здравствуйте! Собрал библиотеку boost и boost.build для двух компиляторов: MinGW 4.5.2 и Visual...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru