none
Windows SDK の C++ nmake で bufferoverflowU.lib がリンクできずエラー RRS feed

  • 質問

  • Vista x64 に Windows SDK をインストールして 64bit コンパイルのテストをしています。

    オープンソースの mp3 エンコーダ LAME 3.97 のソースを入手し、INSTALL を読んで nmake を試みています。Include や Lib, MSVCVer などの環境変数を設定し、64bit バイナリを作ろうとしています。

    メッセージを見ていると obj の生成は出来ているようなのですが、リンクを行う段階で件名に書いた bufferoverflowU.lib がリンクできないというエラーで終了してしまいます。

     

    ネットで調べたところ、bufferoverflowU.lib は VisualStudio の (?) Platform SDK に含まれている様なのですが、私の環境である VisualStudio C++ 2005 Express と Windows SDK にはこのライブラリが含まれていないようです。

    (ファイル検索しましたが見つかりませんでした)

     

    私の認識では以前の Platform SDK が改名されて現在の Windows SDK になっていると思うのですが、このライブラリが含まれていないということは別物なのでしょうか。

    また、代わりにリンクに指定すれば良いライブラリがあるようであれば、どなたかご教授いただけると助かります。

     

    せっかく Vista は x64 で行こうと決めたので、自分でも 64bit バイナリを作って使ってみたいです。

    2007年4月2日 12:37

すべての返信

  • そのものずばりと思われるものがありますが。

    http://support.microsoft.com/kb/894573

     

    libを手動でリンクすれば好さそうですよ。

    2007年4月2日 13:05
  • レスありがとうございます。このKBはすでに参照していました。

    このKBを読むに、「現在のVC++コンパイラはバッファオーバーランの脆弱性を持たないように、既定で /GS スイッチを付けるようになり、この /GS スイッチが付いている場合は bufferoverflowU.lib を要求する」と私は解釈しました。(自動翻訳と元の英文の自力訳なので、これで正しいか不安です)

     

    別な Web を検索して、「 /GS- 」とスイッチ記述すればこの既定がキャンセルされるらしい事は分かったのですが、bufferoverflowU.lib の入手先が分かればリンクしたほうが安全なのかな、と考えています。

    (出来たバイナリを自分で使うだけなので、今回の lame.exe のようなプログラムならカリカリしなくとも良いのかな、とは思いますが)

     

    「 /GS- 」スイッチでリンクもエラーにならずに通るか、後で確認してみます。

    2007年4月2日 16:00
  • >bufferoverflowU.lib の入手先が分かればリンクしたほうが安全なのかな、と考えています。

     

    BufferOverflowU.libはVisual Studioのものということであれば、SDKに含まれていないのも当然ですし、Visual Studioフォルダのものをリンクすればいいでしょう。

    2007年4月3日 14:20
  • VS2005TeamSuiteのファイル構成で確認したところ、VS内のPlatformSDK に件のLIBがありますね。

    もしこのファイルが、GS スイッチで必要となると言うものだとすれば、CRT の LIB としてあるべきものということになるので、構成上のミス(インストーラ作成時のバグ)の可能性があります。

    バグだとしたら、サポートに連絡すればファイルを入手できるかもしれませんが、Express ってサポート窓口あるんでしたっけ?

     

    ただ、回避策がある(妥当と言えるかどうかは微妙ですがw)ので、入手には Standard 以上を購入してくださいということになる可能性は十分あり得ます(MSも私企業ですのでw)。

    このあたりは、なんとも言えませんが、ダメもとでサポートに連絡してみるというのはありだと思いますよw

    [追記] Express Edition には、VS同梱のPlatformSDK サブセットはついてません>中さんw

    2007年4月4日 4:42