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

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

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

我的Mkakefile与GCC

 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中有交叉编译器。

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

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