2014-07-10 7 views
1

나는 호스트 (gcc)를 사용하여 우분투 컴퓨터에서 컴파일에 성공했으며 성공적으로 호스트에서 응용 프로그램을 실행했습니다.openssl 라이브러리와 arm-cross 컴파일러를 연결하는 방법

이제는 동일한 응용 프로그램을 LPC1788의 arm-cross 컴파일러로 교차 컴파일하고 싶습니다. 어떻게 이러한 오류로 이어지는 다음 메이크

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) 

를 사용하는 컴파일러를 변경하여 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) 

으로하려면 openssl 라이브러리 파일

내 Mkakefile을 연결하는 나를 인도 해주십시오

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

이러한 오류의 원인과 방법은 무엇입니까

+0

팔에 대해 openssl을 크로스 컴파일 했습니까? –

+0

또한'CFLAGS = -isystem/usr/include/openssl'을 추가해보십시오. –

+0

결과가 동일하지 않습니다. 해당 파일이나 디렉토리가 없습니다. – amar

답변

0

다른 아키텍처로 컴파일 할 때 호스트 라이브러리를 사용할 수 없습니다. 먼저 타겟 머신 (예 : ARM)에 대해 모든 비표준 라이브러리 (libxml, libopenssl)를 교차 컴파일해야합니다. 당신이 PATH에 크로스 컴파일러를 가지고, 는 가정 - (당신은 README 파일을 확인 할 수 또는 비슷한)

기본적으로, 당신은

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

와 함께 이러한 라이브러리의 소스 코드를 다운로드하고 구성해야 .

이 라이브러리는 또한 크로스 컴파일 할 라이브러리가 더 필요할 수도 있습니다.

응용 프로그램을 컴파일 할 때 이러한 교차 컴파일 된 라이브러리를 사용해야합니다.

+0

크로스 컴파일 된 openssl을 사용하고 크로스 컴파일러 경로에서 libcrypto.a와 libssl.a를 복사 한 다음 동일한 오류가 발생합니다. – amar

+0

필요한 헤더 파일 (rsa.h)을 가지고 있습니까? 교차 컴파일 된 opencssl의 설치 디렉토리를 확인하십시오. 이 디렉토리에 컴파일러를 지정해야합니다. -I SOME_HOST_DIR/usr/include – kayrick

+0

경로에서 이러한 .h 파일을 찾을 수 있습니다./usr/include/openssl/ – amar