1

機能するために openssl を必要とするARM ターゲット用にlibwebsocket ライブラリをコンパイルする必要があります。cmake の時点で最新の libwebsocket をビルドすると、次のエラーが発生します ...

しかし、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はこちら======== ================

ignite@ignite:~/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

実際、私はここから tarball をソースしています。http://www.openssl.org/source/openssl-1.0.1e.tar.gzを作成およびインストールするための構成スクリプトがあり
ます

したがって、これ (openssl-1.0.1e.tar.gz) は取得する適切なパッケージになります --> openssl-dev または openssl-devel --- このエラーを解決できるようにするには?

4

1 に答える 1

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 wiki にはプラットフォーム用のクロス コンパイルの例がいくつかあります。たとえば、FIPS ライブラリと Androidを参照してください。このsetenv-android.shスクリプトは、パス、sysroot、およびツールチェーンを設定するため、最も重要です。パスとツールチェーンを設定したら、あとは簡単です。

汎用 ARM をターゲットにしている場合は、Androidsetenv-android.shを汎用ビルドの出発点として使用できます。ビルドが完了したら、OPENSSL_ROOT_DIRARM のインストール ディレクトリを指定します。

于 2014-01-07T04:55:46.120 に答える