gpt4 book ai didi

c - 如何将 openssl 库与 arm-cross 编译器链接起来

转载 作者:太空宇宙 更新时间:2023-11-04 04:42:33 25 4
gpt4 key购买 nike

我有应用程序 test.c,通过在主机(在 ubuntu 上)机器上使用 gcc,我成功编译并在主机上成功运行了应用程序。

现在我想使用 arm-cross 编译器为 LPC1788 交叉编译同一个应用程序。请指导我如何链接 openssl 库文件

我的 GCC Mkakefile

CC  = gcc  

CFLAGS = -D__XMLSEC_FUNCTION__=__FUNCTION__ -DXMLSEC_NO_XKMS=1
-DXMLSEC_NO_CRYPTO_DYNAMIC_LOADING=1 -I/usr/include/xmlsec1
-I/usr/include/libxml2 -DXMLSEC_OPENSSL_097=1
-DXMLSEC_CRYPTO_OPENSSL=1 -DXMLSEC_CRYPTO=\"openssl\ -DUNIX_SOCKETS -D XML_SECURITY

LDFLAGS = -lcrypto -I/usr/include/libxml2 -lxml2 -I/usr/include/xmlsec1 -lxmlsec1

all:
$(CC) src/test.c -o test $(CFLAGS) $(LDFLAGS)

通过更改编译器,我使用了以下 Makefile

CC = /home/amarayya/doc/tools/arm-2010q1/bin/arm-uclinuxeabi-gcc
CFLAGS = -D__XMLSEC_FUNCTION__=__FUNCTION__ -DXMLSEC_NO_XKMS=1
-DXMLSEC_NO_CRYPTO_DYNAMIC_LOADING=1 -I/usr/include/xmlsec1
-I/usr/include/libxml2 -DXMLSEC_OPENSSL_097=1
-DXMLSEC_CRYPTO_OPENSSL=1 -DXMLSEC_CRYPTO=\"openssl\ -DUNIX_SOCKETS -D XML_SECURITY

LDFLAGS = -lcrypto -L/usr/include/libxml2 -lxml2 -L/usr/include/xmlsec1 -lxmlsec1

all:
$(CC) src/test.c -o test $(CFLAGS) $(LDFLAGS)

导致这些错误的原因

fatal error: openssl/rsa.h: No such file or directory
fatal error: openssl/rsa.h: No such file or directory

是什么导致了这些错误以及如何克服

最佳答案

为不同的体系结构编译时,您不能使用宿主库。首先,您需要为您的目标机器(即 ARM)交叉编译所有非标准库(libxml、libopenssl)。

基本上,您需要下载这些库的源代码并配置它

--host=arm-uclinuxeabi --prefix=SOME_HOST_DIR

(或类似的东西——你可以查看 README 文件)假设您在 PATH 中有交叉编译器。

这些库可能还需要更多的库进行交叉编译。

在编译您的应用程序时,您应该使用这些交叉编译的库。

关于c - 如何将 openssl 库与 arm-cross 编译器链接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24671252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com