2015年7月27日月曜日

VS.NET 2015でopensslをビルドするときのメモ

__iob_funcが未定義と怒られたので調べてみた自分用メモ
これはstdin/stdout/stderrのdefineが変わっているのが原因のようだ。

以下の修正をすることで解消。

修正ファイル:e_os.h

300行目付近で

#          define stdin  (&__iob_func()[0])
#          define stdout (&__iob_func()[1])
#          define stderr (&__iob_func()[2])


となっている箇所を

#          define stdin  (__acrt_iob_func(0))
#          define stdout (__acrt_iob_func(1))
#          define stderr (__acrt_iob_func(2))

と変更してやる。

もしくは、

#ifマクロで「_MSC_VER>=1900」の場合だけ「__acrt_iob_func」に
変更するように修正を入れる。

0 件のコメント: