Я пытаюсь создать динамическую библиотеку C ++, которая использует mbedTLS.
К сожалению, я получаю "неопределенную ссылку на ..." во время связывания для каждой функции, которую я пытаюсь использовать.
Я собрал mbedTLS с -DCMAKE_POSITION_INDEPENDENT_CODE = Вкл.
Я включаю необходимые заголовочные файлы.
Я ссылаюсь на полный путь к библиотекам mbed_whever.a.
Я пытался обернуть мои включения внешним символом "C" {}.
Я не знаю, что мне не хватает, но должен быть правильный способ сборки.
---------------- Редактировать - запрашиваемая информация -------------------
Согласно Каков идиоматический способ в CMAKE добавить опцию компилятора -fPIC? Я использовал cmake -DCMAKE_POSITION_INDEPENDENT_CODE=On ~/Downloads/mbedtls-2.16.1-apache/mbedtls-2.16.1/
для сборки mbedTLS. Он собран и протестирован без ошибок.
<file>'s includes:
#include "mbedtls/net.h"
#include "mbedtls/ssl.h"
#include "mbedtls/entropy.h"
#include "mbedtls/ctr_drbg.h"
#include "mbedtls/debug.h"
build output:
<file>:<line>: undefined reference to `mbedtls_net_init'
<file>:<line>: undefined reference to `mbedtls_ssl_init'
<file>:<line>: undefined reference to `mbedtls_ssl_config_init'
<file>:<line>: undefined reference to `mbedtls_ctr_drbg_init'
<file>:<line>: undefined reference to `mbedtls_entropy_init'
<file>:<line>: undefined reference to `mbedtls_entropy_func'
<file>:<line>: undefined reference to `mbedtls_ctr_drbg_seed'
collect2: error: ld returned 1 exit status