Armadilloフォーラム

SSLに関して

sasa0107

2016年7月5日 11時49分

笹倉と申します。
いつもお世話になり、有難うございます。
SSLのライブラリーに関してですが、
G2ではライブラリーが有り、ATDE5上で、クロスコンパイラー
arm-linux-gnueabi-gcc
を使用してSSLライブラリーをリンクしておりました。
G3を購入致しまして、同じソフトをATDE6上で、クロスコンパイラー
arm-linux-gnueabihf-gcc
を行いますと、
arm-linux-gnueabihf-gcc -Wall -D__LINUX__ -O3 -I. -DUSE_WEBSOCKET=1 -DUCLINUX=1 -DUSE_SSL=1 -o aaa src1.o libcogentcetk.a -lrt -lssl -lcrypto -ldl -lm
/usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../../arm-linux-gnueabihf/bin/ld: -lssl が見つかりません
/usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../../arm-linux-gnueabihf/bin/ld: -lcrypto が見つかりません
とのエラーが発生します。
dpkg -l |grep libssl|grep cross
で確認しましたところ、
G2で使用しているATDE5では、
ii libssl-dev-armel-cross 1.0.1e-2+deb7u14 all SSL development libraries, header files and documentation (for cross-compiling)
ii libssl-dev-armhf-cross 1.0.1e-2+deb7u14 all SSL development libraries, header files and documentation (for cross-compiling)
ii libssl1.0.0-armel-cross 1.0.1e-2+deb7u14 all SSL shared libraries (for cross-compiling)
ii libssl1.0.0-armhf-cross 1.0.1e-2+deb7u14 all SSL shared libraries (for cross-compiling)
と表示されますが、G3で使用しているATDE6では何も表示しません。
G3で使用しているATDE6では、SSLのライブラリーをSSLのサイトからダウンロードする必要が
有るのでしょうか。それとも展開したATDE6の展開の仕方に問題があったのでしょうか。
ご教授お願い致します。

コメント

花田です。これ回答ついてなかったんですね、遅くてすみません。

> /usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../../arm-linux-gnueabihf/bin/ld: -lssl が見つかりません
> /usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../../arm-linux-gnueabihf/bin/ld: -lcrypto が見つかりません
> とのエラーが発生します。

お気づきの通りarmhf用のライブラリが必要です。

> dpkg -l |grep libssl|grep cross
> で確認しましたところ、
> G2で使用しているATDE5では、
> ii libssl-dev-armel-cross 1.0.1e-2+deb7u14 all SSL development libraries, header files and documentation (for cross-compiling)
> ii libssl-dev-armhf-cross 1.0.1e-2+deb7u14 all SSL development libraries, header files and documentation (for cross-compiling)
> ii libssl1.0.0-armel-cross 1.0.1e-2+deb7u14 all SSL shared libraries (for cross-compiling)
> ii libssl1.0.0-armhf-cross 1.0.1e-2+deb7u14 all SSL shared libraries (for cross-compiling)
> と表示されますが、G3で使用しているATDE6では何も表示しません。

ATDE5ではクロスパッケージ化されたライブラリが入っていますが、ATDE6はmultiarch環境というものになっていますので、通常この名前のような形では入りません。

atmark@atde6:~$ dpkg -l libssl\*
要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持
| 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
|/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
||/ 名前                            バージョン           アーキテクチャ       説明
+++-===============================-====================-====================-====================================================================
ii  libssl1.0.0:i386                1.0.1t-1+deb8u2      i386                 Secure Sockets Layer toolkit - shared libraries

ATDE6の標準状態ではこんな風にi386用のlibssl1.0.0しか入っていませんので、armhf用ライブラリを追加インストールします。

root@atde6:/home/atmark# apt-get install libssl-dev:armhf

通常はネイティブのアーキテクチャ(i386やamd64)用のパッケージがインストールされますが、:(コロン)の後ろに書けば他アーキテクチャ用を指定できるわけです。
インストール後はこんな感じになります。

atmark@atde6:~$ dpkg -l libssl\*
要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持
| 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
|/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
||/ 名前                            バージョン           アーキテクチャ       説明
+++-===============================-====================-====================-====================================================================
ii  libssl-dev:armhf                1.0.1t-1+deb8u2      armhf                Secure Sockets Layer toolkit - development files
un  libssl-doc                      <なし>               <なし>               (説明 (description) がありません)
ii  libssl1.0.0:armhf               1.0.1t-1+deb8u2      armhf                Secure Sockets Layer toolkit - shared libraries
ii  libssl1.0.0:i386                1.0.1t-1+deb8u2      i386                 Secure Sockets Layer toolkit - shared libraries

笹倉です。
花田様、ご回答有難うございます。
試してみます。
> 花田です。これ回答ついてなかったんですね、遅くてすみません。
>
> > /usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../../arm-linux-gnueabihf/bin/ld: -lssl が見つかりません
> > /usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../../arm-linux-gnueabihf/bin/ld: -lcrypto が見つかりません
> > とのエラーが発生します。
>
> お気づきの通りarmhf用のライブラリが必要です。
>
> > dpkg -l |grep libssl|grep cross
> > で確認しましたところ、
> > G2で使用しているATDE5では、
> > ii libssl-dev-armel-cross 1.0.1e-2+deb7u14 all SSL development libraries, header files and documentation (for cross-compiling)
> > ii libssl-dev-armhf-cross 1.0.1e-2+deb7u14 all SSL development libraries, header files and documentation (for cross-compiling)
> > ii libssl1.0.0-armel-cross 1.0.1e-2+deb7u14 all SSL shared libraries (for cross-compiling)
> > ii libssl1.0.0-armhf-cross 1.0.1e-2+deb7u14 all SSL shared libraries (for cross-compiling)
> > と表示されますが、G3で使用しているATDE6では何も表示しません。
>
> ATDE5ではクロスパッケージ化されたライブラリが入っていますが、ATDE6はmultiarch環境というものになっていますので、通常この名前のような形では入りません。
>
>

> atmark@atde6:~$ dpkg -l libssl\*
> 要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持
> | 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
> |/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
> ||/ 名前                            バージョン           アーキテクチャ       説明
> +++-===============================-====================-====================-====================================================================
> ii  libssl1.0.0:i386                1.0.1t-1+deb8u2      i386                 Secure Sockets Layer toolkit - shared libraries
> 

>
> ATDE6の標準状態ではこんな風にi386用のlibssl1.0.0しか入っていませんので、armhf用ライブラリを追加インストールします。
>
>

> root@atde6:/home/atmark# apt-get install libssl-dev:armhf
> 

>
> 通常はネイティブのアーキテクチャ(i386やamd64)用のパッケージがインストールされますが、:(コロン)の後ろに書けば他アーキテクチャ用を指定できるわけです。
> インストール後はこんな感じになります。
>
>

> atmark@atde6:~$ dpkg -l libssl\*
> 要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持
> | 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
> |/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
> ||/ 名前                            バージョン           アーキテクチャ       説明
> +++-===============================-====================-====================-====================================================================
> ii  libssl-dev:armhf                1.0.1t-1+deb8u2      armhf                Secure Sockets Layer toolkit - development files
> un  libssl-doc                      <なし>               <なし>               (説明 (description) がありません)
> ii  libssl1.0.0:armhf               1.0.1t-1+deb8u2      armhf                Secure Sockets Layer toolkit - shared libraries
> ii  libssl1.0.0:i386                1.0.1t-1+deb8u2      i386                 Secure Sockets Layer toolkit - shared libraries
> 

笹倉です。
花田様、
お世話になります。

解決致しました。
有難うございました。

> 笹倉です。
> 花田様、ご回答有難うございます。
> 試してみます。
> > 花田です。これ回答ついてなかったんですね、遅くてすみません。
> >
> > > /usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../../arm-linux-gnueabihf/bin/ld: -lssl が見つかりません
> > > /usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../../arm-linux-gnueabihf/bin/ld: -lcrypto が見つかりません
> > > とのエラーが発生します。
> >
> > お気づきの通りarmhf用のライブラリが必要です。
> >
> > > dpkg -l |grep libssl|grep cross
> > > で確認しましたところ、
> > > G2で使用しているATDE5では、
> > > ii libssl-dev-armel-cross 1.0.1e-2+deb7u14 all SSL development libraries, header files and documentation (for cross-compiling)
> > > ii libssl-dev-armhf-cross 1.0.1e-2+deb7u14 all SSL development libraries, header files and documentation (for cross-compiling)
> > > ii libssl1.0.0-armel-cross 1.0.1e-2+deb7u14 all SSL shared libraries (for cross-compiling)
> > > ii libssl1.0.0-armhf-cross 1.0.1e-2+deb7u14 all SSL shared libraries (for cross-compiling)
> > > と表示されますが、G3で使用しているATDE6では何も表示しません。
> >
> > ATDE5ではクロスパッケージ化されたライブラリが入っていますが、ATDE6はmultiarch環境というものになっていますので、通常この名前のような形では入りません。
> >
> >

> > atmark@atde6:~$ dpkg -l libssl\*
> > 要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持
> > | 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
> > |/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
> > ||/ 名前                            バージョン           アーキテクチャ       説明
> > +++-===============================-====================-====================-====================================================================
> > ii  libssl1.0.0:i386                1.0.1t-1+deb8u2      i386                 Secure Sockets Layer toolkit - shared libraries
> > 

> >
> > ATDE6の標準状態ではこんな風にi386用のlibssl1.0.0しか入っていませんので、armhf用ライブラリを追加インストールします。
> >
> >

> > root@atde6:/home/atmark# apt-get install libssl-dev:armhf
> > 

> >
> > 通常はネイティブのアーキテクチャ(i386やamd64)用のパッケージがインストールされますが、:(コロン)の後ろに書けば他アーキテクチャ用を指定できるわけです。
> > インストール後はこんな感じになります。
> >
> >

> > atmark@atde6:~$ dpkg -l libssl\*
> > 要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持
> > | 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
> > |/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
> > ||/ 名前                            バージョン           アーキテクチャ       説明
> > +++-===============================-====================-====================-====================================================================
> > ii  libssl-dev:armhf                1.0.1t-1+deb8u2      armhf                Secure Sockets Layer toolkit - development files
> > un  libssl-doc                      <なし>               <なし>               (説明 (description) がありません)
> > ii  libssl1.0.0:armhf               1.0.1t-1+deb8u2      armhf                Secure Sockets Layer toolkit - shared libraries
> > ii  libssl1.0.0:i386                1.0.1t-1+deb8u2      i386                 Secure Sockets Layer toolkit - shared libraries
> >