mbedtls 与 mbedtls_test_cas_pem 链接错误

问题描述 投票:0回答:1

我正在 mbedtls 发行版中编译 ssl_client1.c

g++ -I/home/pi/dev/mbedtls/mbedtls/include \
    -I/home/pi/dev/mbedtls/mbedtls/tests/include \
    -I/home/pi/dev/mbedtls/mbedtls/tests/include/test \
    -L/home/pi/dev/mbedtls/mbedtls/library \
    ssl_client1.c \
    -lmbedtls -lmbedx509 -lmbedcrypto

并且由于链接器错误而失败:

ssl_client1.c:(.text+0x158): undefined reference to `mbedtls_test_cas_pem_len'
/usr/bin/ld: ssl_client1.c:(.text+0x15c): undefined reference to `mbedtls_test_cas_pem_len'
/usr/bin/ld: ssl_client1.c:(.text+0x16c): undefined reference to `mbedtls_test_cas_pem'
/usr/bin/ld: ssl_client1.c:(.text+0x170): undefined reference to `mbedtls_test_cas_pem'

但是没有可链接的“测试”库。它们在

/home/pi/dev/mbedtls/mbedtls/tests/include/test/tests.h
中定义,并且可以正确编译,但链接器无法使用这些符号。
MBEDTLS_PEM_PARSE_C
已定义。

mbedtls
1个回答
0
投票

结果我需要更多文件,因为它使用测试:

cd /home/pi/dev/mbedtls/ssl_client1
cp /home/pi/dev/mbedtls/mbedtls/tests/src/certs.c .

还有更多包括路径:

g++ -o ssl_client \
    -I/home/pi/dev/mbedtls/mbedtls/tests/src \
    -I/home/pi/dev/mbedtls/mbedtls/library \
    -I/home/pi/dev/mbedtls/mbedtls/include \
    -I/home/pi/dev/mbedtls/mbedtls/tests/include \
    -I/home/pi/dev/mbedtls/mbedtls/tests/include/test \
    -L/home/pi/dev/mbedtls/mbedtls/library \
    -L/home/pi/dev/mbedtls/mbedtls/tests \
    ssl_client1.c certs.c \
    -lmbedtls -lmbedx509 -lmbedcrypto
© www.soinside.com 2019 - 2024. All rights reserved.