建立链接到静态C库的动态C ++库

时间:2019-06-29 20:38:02

标签: c++ cmake linker-errors mbedtls

我正在尝试构建一个使用mbedTLS的动态C ++库。 不幸的是,在我尝试使用的每个函数的链接过程中,我都得到“对...的未定义引用”。

我使用-DCMAKE_POSITION_INDEPENDENT_CODE = On构建了mbedTLS。 我包括必要的头文件。 我正在链接完整路径mbed_whatever.a库。 我试过用extern“ C” {}包装我的包含内容。

我不知道我缺少什么,但是必须有一种正确的构建方法。

----------------编辑-请求的信息-------------------

根据What is the idiomatic way in CMAKE to add the -fPIC compiler option?,我使用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

0 个答案:

没有答案
相关问题