サイログ。

~雑多な記事置き場~

VS2008(+MSVCRT)でopennsslをビルド…しているときのメモ

openss-0.9.8lをベースにメモしてます。

MSVCRTにも存在するオプションのおかげで、「二重マクロ定義」エラーが起きているときの対処:

util\pl\VC-32.plの110行目当たりの2行を削除すると、二重マクロ定義のエラーが出なくなります。

$base_cflags.=' -D_CRT_SECURE_NO_DEPRECATE'; # shut up VC8
$base_cflags.=' -D_CRT_NONSTDC_NO_DEPRECATE'; # shut up VC8

【追記】
上記対策しても
ところで、↑では、「VC8(つまり、VisualStudio2005)」云々と書かれているので、VS2005とかVS2003とかだったらちゃんとビルドできるのかなぁ。これらを入れてみて、ビルドできるかどうかやってみよう。

とはいえども、やっぱり、↓のエラーには直面するんですけどねOTL

Microsoft(R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.

Building OpenSSL
link /nologo /subsystem:console /opt:ref /dll /out:out32dll\libeay32.dll /def:ms/LIBEAY32.def @C:\DOCUME~1\***\LOCALS~1\Temp\nm2098.tmp
ライブラリ out32dll\libeay32.lib とオブジェクト out32dll\libeay32.exp を作成中
e_aep.obj : error LNK2019: 未解決の外部シンボル __imp___getpid が関数 _aep_get_connection で参照されました。
out32dll\libeay32.dll : fatal error LNK1120: 外部参照 1 が未解決です。
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.EXE"' : リターン コード '0x460'
Stop.

【追記】

なんで嘆いているかと言うと、2年前も同じ理由でOTLしちゃってたからOTL

Ruby1.9 上のopensslライブラリがビルドできない。