首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将openssl库与arm-cross编译器链接起来

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

Stack Overflow用户
提问于 2014-07-10 15:57:45
回答 1查看 3.2K关注 0票数 1

我已经在宿主机( ubuntu)上使用了gcc的应用程序测试,编译成功,并在宿主机上成功运行了应用程序。

现在我想用LPC1788的arm交叉编译器交叉编译相同的应用程序。请指导我如何链接openssl库文件

我和GCC的Mkakefile

代码语言:javascript
复制
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

代码语言:javascript
复制
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)

这导致了这些错误

代码语言:javascript
复制
fatal error: openssl/rsa.h: No such file or directory
fatal error: openssl/rsa.h: No such file or directory

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

EN

回答 1

Stack Overflow用户

发布于 2014-07-10 16:21:18

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

基本上,您需要下载这些库的源代码并使用

代码语言:javascript
复制
--host=arm-uclinuxeabi --prefix=SOME_HOST_DIR

(或者类似的东西--您可以查看自述文件)假设您的交叉编译器在PATH中。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24671252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档