2011年4月25日

libpngの怪

64bit版Falcom データアーカイブ 変換ツールを作るにあたってどうせなのでVC10ランタイム必須にしようと思い、いざ/MTを/MDに変えてビルド。
出来上がったexeを見るとサイズ結構縮んでる、よしよし。

で、いつもの癖でバイナリ表示のexeの中をざっと覗いてみると
falcnvrt.exe^@png_access_version_number^@png_benign_error・・・
と何故かlibpngの関数がずらっと並んでる。
え?この書かれ方はエクスポートテーブル?
なんでうちのexeでlibpngの関数がエクスポート関数になってるんだ?
libpngはlibで静的リンクだから__declspec(dllexport)や.defなんか使ってないのに。
これだと使ってない関数さえエクスポート関数になってるからその分ファイルサイズもまだ無駄に大きいはず。
zlibもlibでリンクしているのにそっちはエクスポート関数にはなってないし。
Why?

libpng.libの設定がおかしいのか?
本体の設定がおかしいのか?
VC2010がおかしいのか?

~~DISCUSSION~~

blog/2011/0425-1551.txt · 最終更新: 2016/02/15 18:45 (外部編集)
CC Attribution-Noncommercial-Share Alike 3.0 Unported
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0