2013-04-25 3 views
1

내 ARM 타겟에 대해 libwebsocket 라이브러리 을 컴파일해야하는데이 기능을 사용하려면 openssl이 필요합니다. 내가 cmake,시 최신 libwebsocket을 만들 때 오류를 다음 얻고있다 ...Openssl 헤더를 찾을 수 없음 - 오류

그러나있는 OpenSSL은 ==============

whereis openssl 
openssl: /usr/bin/openssl /usr/bin/X11/openssl /usr/share/man/man1/openssl.1ssl.gz 

여기에 설치 ===================== 오류 ==============

-- Looking for 4 include files stdlib.h, ..., float.h - found 
-- Found ZLIB: /usr/lib/arm-linux-gnueabihf/libz.so (found version "1.2.7") 
ZLib include dirs: /usr/include 
ZLib libraries: /usr/lib/arm-linux-gnueabihf/libz.so 
Compiling with SSL support 
CMake Error at /usr/local/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:97 (message): 
    Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the 
    system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES 
    OPENSSL_INCLUDE_DIR) 
Call Stack (most recent call first): 
    /usr/local/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:291 (_FPHSA_FAILURE_MESSAGE) 
    /usr/local/share/cmake-2.8/Modules/FindOpenSSL.cmake:313 (find_package_handle_standard_args) 
    CMakeLists.txt:436 (find_package) 


-- Configuring incomplete, errors occurred! 

===== ==================== openssl은 여기에 있습니다. ============= ===========

[email protected]:~/sbox2/rootfs/rfs-raspbian_2/home/pi/libwebsockets/build$ whereis openssl 
openssl: /usr/bin/openssl /usr/bin/X11/openssl /usr/share/man/man1/openssl.1ssl.gz 

실제로 여기에서 소스 타볼이 있습니다. 이 & make가 이 http://www.openssl.org/source/

그래서이 (하려면 openssl-1.0.1e.tar.gz)을하려면 openssl-1.0.1e.tar.gz 얻을 수있는 권리 패키지가 될 것이다 설치할 수 있도록 구성 스크립트가 -> openssl-dev 또는 openssl-devel --- 그래서이 오류를 해결할 수 있습니까?

답변

0

따라서이 (openssl-1.0.1e.tar.gz)는 -> openssl-dev 또는 openssl-devel을 얻을 수있는 올바른 패키지가 될 것입니다.이 오류를 해결할 수 있습니까?

openssl-dev 패키지는 호스트 컴퓨터 (x86 또는 x64 제품군)에서 개발할 수 있습니다. 대상 (호스트가 아닌)에 대해 교차 컴파일 된 라이브러리가 필요합니다. 따라서 openssl-dev은 문제를 해결하지 못할 수도 있습니다.

일반 ARM 프로세서, iOS 또는 Android를 타겟팅합니까? 전자의 경우 경로가 적절하게 설정된 팔 교차 도구 체인이 필요합니다. 나는 라이브러리를 크로스 컴파일하는 것에 대한 훌륭한 튜토리얼을 알지 못한다. (나는 과거에도 그것을 겪었다.)

일반적인 크로스 컴파일을 위해 미리 빌드 된 구성이 있습니다. Configureconfig을 열고 일부 트리플을보십시오. OpenSSL은 Automake와 친구들을 사용하지 않습니다.

iOS 또는 Android의 경우 OpenSSL 위키에는 플랫폼에 대한 크로스 컴파일 예제가 있습니다. 예를 들어, FIPS Library and Android을 참조하십시오. setenv-android.sh 스크립트는 경로, sysroot 및 toolchains를 설정하기 때문에 가장 중요합니다. 경로와 도구 모음이 설정되면 나머지는 쉽습니다.

일반 ARM을 타겟팅하는 경우 Android setenv-android.sh을 일반 빌드의 시작점으로 사용할 수 있습니다. 빌드를 완료하면 OPENSSL_ROOT_DIR을 ARM의 설치 디렉토리로 지정하십시오.