45159


現在、古いVisual StudioのSolutionのビルドをしています。  
最初は70くらいのエラーが出たのですが、今は10くらいになりました。  
しかし、同じエラーがでているので、後5つくらいです。  
その一つで、次のエラーがあります。

「エラー LNK1104 ファイル 'LIBCD.lib' を開くことができません。」

この'LIBCD.lib'が何なのかがわかりませんし、ビルドもされません。  
対応方法がわかりましたら、御教示願います。


CC BY-SA 4.0
2018-06-29T07:54:09.863
45155
2018-06-29T08:21:10.580
29110
question
c++ windows visual-studio
「エラーLNK1104ファイル 'LIBCD.lib' を開くことができません。」への対処法について


`printf`等が含まれているライブラリをCRT;
Cランタイムライブラリと呼びますが、`libc.lib`がシングルスレッド用、`libcd.lib`シングルスレッドデバッグ用のライブラリファイル名です。しかし[`libc.lib`および`libcd.lib`はVisual
C++ 2005で廃止](https://docs.microsoft.com/ja-jp/cpp/porting/visual-cpp-change-
history-2003-2015#visual-c-2005-breaking-changes)されています。

> シングルスレッドの CRT ライブラリ libc.lib と libcd.lib は削除されました。 マルチスレッドの CRT
> ライブラリを使用してください。 /ML コンパイラ フラグはサポートされなくなりました。

ソースコード及びプロジェクトファイルを確認し、どのような指定によって `libc.lib` や `libcd.lib`
が読み込まれているかを特定してください。その上で、[Cランタイムライブラリ](https://docs.microsoft.com/ja-
jp/cpp/c-runtime-library/crt-library-features)を参照し、適切なライブラリを選択してください。


CC BY-SA 4.0
2018-06-29T08:12:32.403
45158
2018-06-29T08:12:32.403
4236
45155
answer


LIBCD.libは古いVSが供給していた、Cランタイムライブラリ(スタティックライブラリ)ですね。  
Web検索すれば見つかると思いますので、詳しくはそちらを参照してください。  
プロジェクト内で、リンカの入力(ライブラリ)に直接このライブラリ名称が記述されている場合は、ご使用のVSによりますが、プロジェクトのプロパティDLGを開いて、左のリストの「リンカ」の、配下の「入力」から当該のライブラリを削除してみてください。  
現在のOS及びVisualStudioでは、このライブラリを使用するときに指定するオプション「/MLd」オプションは使用できなくなっています。  
もしこれが指定されていた場合で不都合が無ければマルチスレッド(デバッグ)の動的リンクの方を指定するコンパイルオプション「/MDd」を選択してみてはどうでしょう。


CC BY-SA 4.0
2018-06-29T08:21:10.580
45159
2018-06-29T08:21:10.580
3793
45155
answer