24723


タイトルのようにしたいのですがうまくいきません。

環境はubuntu 16.04 LTSです。

wget <https://www.openssl.org/source/openssl-1.0.2h.tar.gz>  
その場で解凍、OpenSSLのディレクトリを開く  
./config --prefix=/usr/i686-w64-mingw32  
make  
make test  
sudo make install

このサイトのサンプルコードを使って  
<http://a4dosanddos.hatenablog.com/entry/2015/03/01/191730>

i686-w64-mingw32-gcc-win32 tes.c  
すると下のエラーが出ます。

[code]

    /tmp/ccozGj6U.o:tes.c:(.text+0x24): `MD5_Init' に対する定義されていない参照です
    /tmp/ccozGj6U.o:tes.c:(.text+0x77): `MD5_Update' に対する定義されていない参照です
    /tmp/ccozGj6U.o:tes.c:(.text+0xb4): `MD5_Final' に対する定義されていない参照です
    collect2: error: ld returned 1 exit status
    
[/code]

どうすればいいと思いますか？

追記：

[code]

    making depend in crypto...
    make[1]: ディレクトリ '/home/[username]/openssl-1.0.2h/crypto' に入ります
    ../util/domd: 31: ../util/domd: makedepend: not found
    mv: cannot stat 'Makefile.new': No such file or directory
    Makefile:136: ターゲット 'local_depend' のレシピで失敗しました
    make[1]: *** [local_depend] エラー 127
    make[1]: ディレクトリ '/home/[username]/openssl-1.0.2h/crypto' から出ます
    Makefile:471: ターゲット 'depend' のレシピで失敗しました
    make: *** [depend] エラー 1
    
[/code]


CC BY-SA 3.0
2016-05-10T00:39:54.023
24688
2016-05-10T22:37:09.737
2016-05-10T20:03:51.870
13313
13313
question
openssl
Linuxのi686-w64-mingw32向けにOpenSSLライブラリを使った開発環境を構築する方法


コンパイルのオプションに「-lcrypto」が必要ではないでしょうか。


CC BY-SA 3.0
2016-05-10T08:52:44.103
24712
2016-05-10T08:52:44.103
15316
24688
answer


こちらの環境も `Ubuntu 16.04` ですが、以下の様にして `libcrypto` を作成しました。

[code]

    $ CC=/usr/bin/i686-w64-mingw32-gcc-win32 \
        perl Configure mingw no-shared no-asm --prefix=/usr/i686-w64-mingw32
    $ make depend
    $ make
    $ sudo make install
    
[/code]

`Configure` を実行する際に環境変数 `CC` を設定して、オプションに `no-asm` を指定する必要があります。

インストール後、サンプルプログラムをコンパイルして Windows 環境で実行してみました。

[code]

    $ i686-w64-mingw32-gcc-win32 tes.c -lcrypto -o tes.exe
    
    ## 実行形式ファイルを Windows 環境へコピーして実行
    C:\> tes
    md5 digest: ea703e7aa1efda0064eaa507d9e8ab7e
    
[/code]

**追記**

>
[code]

>     making depend in crypto...
>     make[1]: ディレクトリ '/home/[username]/openssl-1.0.2h/crypto' に入ります
>     ../util/domd: 31: ../util/domd: makedepend: not found
>  
[/code]

`makedepend` コマンドがインストールされていませんので、`xutils-dev` パッケージをインストールして下さい。

[code]

    $ sudo apt-get install xutils-dev
    
[/code]


CC BY-SA 3.0
2016-05-10T16:05:39.947
24723
2016-05-10T22:37:09.737
2016-05-10T22:37:09.737
24688
answer