掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VC++2010における標準ライブラリの競合回避 libvorbis_static.lib (ID:73032)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
libogg や libvorbis の distribution archive 中にある vcxproj ファイルを見ると libvorbis_static の意味は libogg と libvorbis を static リンクする libvorbis_dynamic は同様 libogg libvorbis を dynamic リンクする という意味に限られているようだ。 C のライブラリに関しては常に dynamic リンクが指定されている。 (両者ともコンパイルオプション -MD マルチスレッド DLL となっている) 一方で MFC を static リンク指定すると (VS2010 は手元に無いので 2005 でのみ確認) コンパイルオプションは -MT マルチスレッド (static) になる。 ひとつの EXE を構成する上で -MT と -MD が混在すると提示のとおりエラーとなる。 で、どうすればよいか、だけど・・・ 解1: static リンクをやめて dynamic に戻す 現在 MFC や C runtime の static リンクは推奨されていないはずで 例: MSDN ぢゃないけど http://social.msdn.microsoft.com/Forums/ja-JP/vcexpressja/thread/18021085-c534-4ddc-b2fc-9124c61ab153 今回の案件では vs2010 だし SxS 系の問題はないはず。 解2: ogg, vorbis ともに -MT で自前 build し自分で責任持つ 責任を持つとは、動作確認やセキュリティアップデートや何もかも、ということ。 libogg や libvorbis に脆弱性が見つかったら (static リンクしているのだから) 自作 EXE も更新する責任が生じるわけだけど、それも持つってことで。 くらいかな・・・
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.