У вас ошибка ссылки, потому что ваш компилятор не может найти mbedtls_ctr_drbg_random
реализацию функции, объявленную в ctr_drbg.h
(см. Описание Здесь ):
Я проверяю библиотеку для вас. Это работает после этого:
1- Я загружаю код Mbedtls_crt_drbg здесь Здесь
2- Извлекаем zip-библиотеку в вашем каталоге (G: \ Cmake \ Sources \ mbedtls в моем случае)
3- Использование Cmake
(доступно Здесь ) для генерации решения (Visual Studio 2010 в моем случае)
4- Открыть и скомпилировать сгенерированный проект (в моем случае "G:\Cmake\Build\Mbedtls\mbed TLS.sln"
)
5- После компиляции, смотрите вывод проекта mbedcrypto
, он генерирует static lib
(в моем случае G: \ Cmake \ Build \ Mbedtls \ library \ Debug \)
![enter image description here](https://i.stack.imgur.com/FKRCt.png)
6- Вы можете проверить, экспортируется ли функция без ссылки mbedtls_ctr_drbg_random
в лунку в static lib
, используя командную строку Visual Studio (или другой вариант. .)
dumpbin /symbols /exports "G:\Cmake\Build\Mbedtls\library\Debug\mbedcrypto.lib" | findstr mbedtls_ctr_drbg_random
Вы должны иметь это:
7- Ничего не делать для заголовка, так как вы можете включают crt_drbg.h
(в моем случае: я добавляю G:\Cmake\Sources\mbedtls\include\mbedtls
к дополнительному пути включения
8- Добавьте mbedcrypto.lib
в вашу программу. В моем случае я делаю это:
Right click on my test project -> properties-> Common Properties-> Add New Reference -> mbedcrypto
9- Теперь я могу скомпилировать и связать с функцией mbedtls_ctr_drbg_random
:
![enter image description here](https://i.stack.imgur.com/sCsST.png)
Вы должны сделать то же самое для вашей программы