LNK4098: defaultlib 'LIBCMT' は他のライブラリの使用と競合しています のエラーについて


  2007-07-28 13:03:46  No: 65868

vc++ 2005を使っています
初学者です

サンプルをいじっていますので、ソースが古いのか、ライブラリの設定がおかしいのかわからない状態です

エラーの内容は
LINK : warning LNK4098: defaultlib 'LIBCMT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。
teki.obj : error LNK2019: 未解決の外部シンボル __CrtDbgReportW が関数 "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) で参照されました。
libcpmtd.lib(stdthrow.obj) : error LNK2001: 外部シンボル "__CrtDbgReportW" は未解決です。
animdraw.obj : error LNK2001: 外部シンボル "__CrtDbgReportW" は未解決です。
baku.obj : error LNK2001: 外部シンボル "__CrtDbgReportW" は未解決です。
jiki.obj : error LNK2001: 外部シンボル "__CrtDbgReportW" は未解決です。
main.obj : error LNK2001: 外部シンボル "__CrtDbgReportW" は未解決です。
libcpmtd.lib(xdebug.obj) : error LNK2019: 未解決の外部シンボル __malloc_dbg が関数 "void * __cdecl operator new(unsigned int,struct std::_DebugHeapTag_t const &,char *,int)" (??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z) で参照されました。
libcpmtd.lib(xdebug.obj) : error LNK2019: 未解決の外部シンボル __free_dbg が関数 "void __cdecl operator delete(void *,struct std::_DebugHeapTag_t const &,char *,int)" (??3@YAXPAXABU_DebugHeapTag_t@std@@PADH@Z) で参照されました。
libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _jtransform_execute_transformation が関数 _main で参照されました。
libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _jcopy_markers_execute が関数 _main で参照されました。
libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _jtransform_adjust_parameters が関数 _main で参照されました。
libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _jtransform_request_workspace が関数 _main で参照されました。
libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _jcopy_markers_setup が関数 _main で参照されました。
libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _write_stdout が関数 _main で参照されました。
libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _read_stdin が関数 _main で参照されました。
libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _read_scan_script が関数 _parse_switches で参照されました。
libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _keymatch が関数 _parse_switches で参照されました。

です
どうかご教授よろしくお願いします


επιστημη  2007-07-28 13:20:03  No: 65869

Release版とDebug版とが混じっているように見受けられます。


  2007-07-28 13:23:15  No: 65870

win32 アプリケーションでプロジェクトから作り直しましたら、エラーが減りましたが
いまだに同じようなエラーが残っています

LINK : warning LNK4098: defaultlib 'LIBCMT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。
teki.obj : error LNK2019: 未解決の外部シンボル __CrtDbgReportW が関数 "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) で参照されました。
libcpmtd.lib(stdthrow.obj) : error LNK2001: 外部シンボル "__CrtDbgReportW" は未解決です。
animdraw.obj : error LNK2001: 外部シンボル "__CrtDbgReportW" は未解決です。
baku.obj : error LNK2001: 外部シンボル "__CrtDbgReportW" は未解決です。
jiki.obj : error LNK2001: 外部シンボル "__CrtDbgReportW" は未解決です。
main.obj : error LNK2001: 外部シンボル "__CrtDbgReportW" は未解決です。
libcpmtd.lib(xdebug.obj) : error LNK2019: 未解決の外部シンボル __malloc_dbg が関数 "void * __cdecl operator new(unsigned int,struct std::_DebugHeapTag_t const &,char *,int)" (??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z) で参照されました。
libcpmtd.lib(xdebug.obj) : error LNK2019: 未解決の外部シンボル __free_dbg が関数 "void __cdecl operator delete(void *,struct std::_DebugHeapTag_t const &,char *,int)" (??3@YAXPAXABU_DebugHeapTag_t@std@@PADH@Z) で参照されました。


  2007-07-28 13:35:00  No: 65871

επιστημηさん
返答ありがとうございます

プロジェクト→プロパティから
構成マネージャをみましたが、構成はデバックになっていました
確認方法が間違っていたのであればすみません


επιστημη  2007-07-28 19:27:37  No: 65872

> 構成マネージャをみましたが、構成はデバックになっていました

にもかかわらず、Release版のライブラリをリンクしてますね。

> LINK : warning LNK4098: defaultlib 'LIBCMT' は他のライブラリの使用> と競合しています。/NODEFAULTLIB:library を使用してください。

LIBCMTはRelease版です。


  2007-07-28 22:10:50  No: 65873

調べたのですが、わからないので解決策をご教授いただけませんか?

http://support.microsoft.com/kb/148652/ja#appliesto
ここの説明を読んでも、VC++での、どこを指しているのか理解できていないのでわかりません
もしくは、調べる項目が間違っているかもしれません

すみませんが、よろしくお願いします


wclrp ( 'o')  2007-07-28 23:14:34  No: 65874

どういう状況なんでしょうね。

状況がわからないので推測です。
LIBCMTとリンクするように指示がある〜.libと
LIBCMTと内容がかぶっているがべつの(デバッグ用)と
リンクするようになっているexeということかな?

構成をReleaseにすればexeを作れるってこと?


  2007-07-29 00:04:32  No: 65875

リリース版にしてみましたが、リンクまでいかない内にエラーがおきるようです
詳しい内容は、と言うよりも、詳しい状況が理解できていないのが現状です

簡単なメニュー画面を表示するまでは、DXライブラリを使用して出来たのですが
画像を利用し、メニューを充実させようとしたところ
このようなエラーが出ました

また、
書籍の完成させてあるゲームサンプルであるソースをコンパイルしたところ
同じようなエラーが起きている状況です

LIBCMTと他のライブラリとの競合が原因だろうと推測して
調べまわっていましたが、糸口がみつからず質問しました


wclrp ( 'o')  2007-07-29 02:30:38  No: 65876

/NODEFAULTLIB:libraryは試していないの?
VC2005でのやり方を書いてみた。
http://blog90.fc2.com/w/wclrp/file/20070728144623.png
プロジェクト選んで
右クリックでメニュー出して
プロパティを選んで
リンカの入力の特定のライブラリの無視に指定します。


  2007-07-29 06:54:52  No: 65877

wclrp ( 'o')さん

リンク先の表示が許可されていないとでます
すみませんが、許可をお願いします


wclrp ( 'o')  2007-07-29 07:15:38  No: 65878

表示できたから問題ないかと思ったけど
リファラチェックしているのかな

http://wclrp.blog90.fc2.com/blog-entry-31.html


  2007-07-29 07:30:06  No: 65879

wclrp ( 'o')さん
回答ありがとうございます
結果を言いますと、エラーがごまんとでました
またLIBCMTD.libでも試しましたが、だめでした
LINK : warning LNK4199: /DELAYLOAD:OleAcc.dll は無視されます。OleAcc.dll にインポートがありません。
というウォーニングが増えただけでした

ですが、参考になりました
ありがとうございます

ライブラリの検索をかけて、コンパイルしてみたところ
このようなライブラリを使用しているようです

    C:\Program Files\Microsoft Visual Studio 8\VC\lib\DelayImp.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\lib\libcpmtd.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\lib\uuid.lib を検索中:
    DxLib.lib を検索中:
    DxUseCLib.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\lib\kernel32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\comctl32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\user32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\gdi32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\advapi32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\ole32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\shell32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\winmm.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\wsock32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\imm32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\msacm32.lib を検索中:
    libpng.lib を検索中:
    zlib.lib を検索中:
    libjpeg.lib を検索中:
    ogg_static.lib を検索中:
    vorbis_static.lib を検索中:
    vorbisfile_static.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\lib\LIBCMT.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\lib\OLDNAMES.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\lib\DelayImp.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\lib\libcpmtd.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\lib\uuid.lib を検索中:
    DxLib.lib を検索中:
    DxUseCLib.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\lib\kernel32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\comctl32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\user32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\gdi32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\advapi32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\ole32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\shell32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\winmm.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\wsock32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\imm32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\msacm32.lib を検索中:
    libpng.lib を検索中:
    zlib.lib を検索中:
    libjpeg.lib を検索中:
    ogg_static.lib を検索中:
    vorbis_static.lib を検索中:
    vorbisfile_static.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\lib\LIBCMT.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\lib\OLDNAMES.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\lib\DelayImp.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\lib\libcpmtd.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\lib\uuid.lib を検索中:
    DxLib.lib を検索中:
    DxUseCLib.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\lib\kernel32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\comctl32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\user32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\gdi32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\advapi32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\ole32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\shell32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\winmm.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\wsock32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\imm32.lib を検索中:
    C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\msacm32.lib を検索中:
    libpng.lib を検索中:
    zlib.lib を検索中:
    libjpeg.lib を検索中:
    ogg_static.lib を検索中:
    vorbis_static.lib を検索中:
    vorbisfile_static.lib を検索中:


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加