1

ホスト(ubuntu)マシンでgccを使用することにより、コンパイルに成功し、ホストでアプリケーションプログラムを正常に実行したアプリケーションtest.cがあります。

今度は、同じアプリケーションを 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

これらのエラーの原因と解決方法

4

1 に答える 1

0

異なるアーキテクチャ用にコンパイルする場合、ホスト ライブラリは使用できません。最初に、ターゲット マシン (つまり ARM) 用のすべての非標準ライブラリ (libxml、libopenssl) をクロス コンパイルする必要があります。

基本的に、これらのライブラリのソース コードをダウンロードし、それを構成する必要があります。

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

(または同様のもの - README ファイルを確認することもできます) クロス コンパイラが PATH にあると仮定します。

これらのライブラリでは、クロス コンパイルするライブラリがさらに必要になる場合もあります。

アプリケーションをコンパイルするときは、これらのクロス コンパイル ライブラリを使用する必要があります。

于 2014-07-10T08:21:17.900 に答える