同じ問題が発生し、armのopensslをクロスコンパイルする方法のマニュアルを作成しました。このマニュアルがあなたにいくつかのアイデアを与えることを願っています:
プロセスは非常に簡単です。このマニュアルでは、UbuntuLinuxシステムでARMアーキテクチャ用のOPENSSLをクロスコンパイルする例を示します。
- クロスコンパイラ
ARMアーキテクチャ用のGNUC/C++コンパイラが必要になります。
$ sudo apt-get install gcc-4.8-arm-linux-gnueabihf g ++-4.8-arm-linux-gnueabihf
- opensslソースコード(バージョン1.1.1)
ビルドするopensslは、https://github.com/openssl/opensslで入手できます。
$ git clone https://github.com/openssl/openssl.git
- 構成
opensslフォルダーに移動し、次のように./configureを実行します。
$ ./Configure linux-armv4 --prefix = / usr / local / openssl / --openssldir = / usr / local / openssl shared
この構成は、このopensslでサポートされる唯一の利用可能なARMプラットフォームであるターゲットプラットフォームlinux-armv4を設定します。--prefix = / usr / local / opensslは、インストールファイルを配置する場所を示します。--openssldir = / usr / local / opensslは、opensslインストールのルートディレクトリを定義します。sharedは、コンパイラに.soライブラリファイルを生成させます。フォルダーopensslの下のドキュメントINSTALLには、。/Configureのパラメーターが含まれています。
- コンパイル
$ make CC = arm-linux-gnueabihf-gcc-4.8
CCは、使用するクロスコンパイラーを指示します。デフォルトのコンパイラはgccです。
- インストール
$ make install
- 出力
インストール後、/ usr / local/opensslの下に次のファイルとフォルダーがあります。
$ ls / usr / local / openssl
置き場
ct_log_list.cnf
含む
その他
openssl.cnf.dist
証明書を共有する
ct_log_list.cnf.dist
lib
openssl.cnf
プライベート
- 終わり
実行可能バイナリがARM用にビルドされていることを確認してください。
$ファイル/usr/ local / openssl / bin / openssl
install-arm / bin / openssl:ELF 32ビットLSB実行可能ファイル、ARM、EABI5バージョン1(SYSV)、動的リンク、インタープリター/lib/ld-linux-armhf.so.3、GNU / Linux 3.2.0、BuildID [sha1] = a23306c9c8bd553183fc20a37a60dcac8291da91、削除されていません
上記のようなものが表示された場合は、ARMシステムのopensslを正常にクロスコンパイルしています。