VC++6.0のリリースで「/OPT:REF」のエラー・・・

[戻る]
はつし 2003/02/06(木) 13:25:43
はじめまして、VC++の6.0にてプログラムを作成しています。

スタティックリンクで、
デバックのモードでビルドをしていたときは、ビルド正常終了しているのですが、
リリースモードに切り換えたとき、下記のようなワーニングがでてしまいます。


LINK : warning LNK4089: "SHELL32.dll" へのすべての参照は /OPT:REF によって廃棄され
ます


これを解決したいのですが、ワーニングを出さなくする方法ってあるのでしょうか?
おそらく、optとついているので、最適化か何かの問題かと思うのですが・・・
よろしくお願い致します。

不良PG 2003/02/06(木) 14:14:57
この警告は、無視しても良い気がしますが・・

MSDNを /OPT で検索してみれば書いてあります

どうしてもと言うなら、リンカオプションで/OPT:NOREFと指定すれば、警告は消えるでしょ
う・・

こじま 2003/02/06(木) 14:34:30
このウォーニングは,「最適化の最中SHELL32.dllの関数を一つも使って
いないことがわかったので,(もはや必要でない)それまで持っていた参照を破棄して
しまった」,という意味です.
あまり,気にする必要はないと思います.

気になるなら,SHELL32.libをリンクしないようにすれば,消える場合もあります.
ただ,SHELL32.libを消すと,今度は「外部参照未解決」エラーが出る場合もありえま
す.

たとえば,
・自分のプログラムが a.lib のある関数f()を呼んでいる.
・a.lib内の別の(自分のプログラムでは必要としていない)関数g()が,
b.lib内の関数を呼んでいる.
とき,実際には b.lib は必要ないので,このウォーニングが出ます.
この場合は,単純にb.libをリンクしないようにすると,
「外部参照未解決」になると思われます.

どとう 2003/02/06(木) 14:37:39
私も出ました。
結構出るみたいですね。

あせって検索して、下記のURlを見つけ
我慢して、そのままにしておく事にしました。

http://www.mtakahashi.com/old/a2750.htmlのA2746

はつし 2003/02/06(木) 17:21:31
[[解決]]
ありがとうございました。
とても参考になりました。
助かります。

古いスレッドには追加発言できません。