スタティックライブラリを先日公開したわけですが、Releaseビルドとはいえ色々とローカルな情報が入っていることにびっくりしました。
まず驚きなのは、そのライブラリを構成しているソースコードから生成されたobjファイルのフルパスが入っていること!
通常VisualStudioはマイドキュメント以下のProjectsにプロジェクトを作成するので、気付くとビルドしたユーザーの名前が意図せずバレてしまう。pdbファイルの絶対パスも記録されることは有名だけど、objもまたフルパスが入っているとは・・・。
続いて __forceinlineにしたにもかかわらず、関数が生き残っていたりする点。おそらく最終段のexe/dllになったときにinline展開されるのかな。static と __forceinlineを併用しているのに関数の情報が生き残っているのはやや不思議。
今回のライブラリは色々と気をつけて作ったのにこのような情報だけはどうすることも出来ませんでした。うまく出来たのは多くの環境でもそのままリンクできそうなライブラリになったというところでしょうか。
コメント