プロが教えるわが家の防犯対策術!

VisualC++ 2005 Express Editionでライブラリファイル(.lib)をリリースバージョンでビルトし、違うプログラム(デバックバージョン)でライブラリファイルをリンクしたとき

1>コンパイルしています...
1>main.c
1>リンクしています...
1>CheckMemory.lib(check_memory.obj) : MSIL .netmodule または /GL を伴ってコンパイルされたモジュールが見つかりました。/LTCG を使用して再開始してください。リンカのパフォーマンスを向上させるためには、コマンドラインに /LTCG を追加してください。
1>LINK : warning LNK4075: /INCREMENTAL は /LTCG の指定によって無視されます。
1>LINK : warning LNK4098: defaultlib 'MSVCRT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。

と出るのですが、これはどうゆうことなのでしょうか?
分かる方いらっしゃいますか?お願いします。

ちなみにライブラリファイルは簡易メモリチェックプロブラムでデバック時のみ使用したいと考えているプログラムです。
使用言語はc言語です。
文章下手ですみません^^;

A 回答 (1件)

リンク時に、複数の異なったランタイムライブラリを同時に利用する


ことはできません。リンク対象の*.objファイル群はコンパイルオプ
ションで全て同一のランタイムを使用するように指定されていなけれ
ばならないからです。これはlibでリンクする場合も同様の問題を
抱えています。ただし、DLLでリンクする場合は異なったランタイム
を利用できる場合もあります。
この説明で理解できない場合は、一部をデバッグビルドまたは一部を
リリースビルドしたlibまたはobj、dllを使用することをあきらめ、
全て同一のランタイムを用いたコンパイル、リンク方法にしたほうが
よいかもしれません。
    • good
    • 0
この回答へのお礼

なんとか解決できました。ありがとうございました。

お礼日時:2008/03/28 00:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!