Visual Studio 2012 C++ プロジェクトがあります。最近、それをアンインストールし、Visual Studio 2015 をインストールして、プロジェクトをアップグレードしました。プロジェクトをビルドしているときに、以下に示すエラーが発生します。
関数で参照されているエラー LNK2019 未解決の外部シンボル _memcmp
さらに、コード memcmp 関数のどこにも使用していません。
リンカの詳細機能を使用したところ、出力ファイルに以下が表示されました。
_memcmp が見つかりました
MyC++Project.obj で参照
libcpmtd.lib(xstrcoll.obj) で参照
読み込んだ libvcruntimed.lib(__memcmp_.obj)
ここで2つの質問
1. コードで memcmp を使用していないのに、リンカー エラーが発生するのはなぜですか?
2. memcmp が __memcmp_.obj としてロードされる理由
私のプロジェクトにも次の設定があります。
1.C++ --> コード生成 --> ランタイム ライブラリを /MTd に設定
2.リンカー-->無視すべてのデフォルトライブラリは何も設定されていません
すべてのプロジェクト設定を試しましたが、すべて無駄でした。
使用していないこの memcmp 関数のみに問題があります。
私は mamcpy と memset を使用しましたが、それらに問題はありません