ari23の研究ノート

メーカ勤務エンジニアの技術ブログです

Visual Studio 2019でC1001とLNK1000エラーの解決方法

MFCツール1を使ったソースコードをVisual Studio 2019でビルドすると、エラーが出る現象がありました。 どうやらVSのバグらしいのですが、これを解決する方法をまとめます🐜

ビルドできない現象に遭遇するまでの状況を整理

  1. やりたいこと
    MFCツールを使ったGUIアプリ(.cppソースコード)をVisual Studio 2019 Communityでビルドしたいという場面でした。

  2. MFCの導入
    既存のGUIアプリがMFC(Microsoft Foundation Class)を使用していたため、Visual Studio Installerを起動して、以下のツールを追加しました。

    • 最新のv142ビルドツール用C++MFC(x86およびx64)
    • v142ビルドツール(14.23)のC++/CLIサポート
    • v142ビルドツール用C++モジュール(x64/x86 - 実験的)
  3. 既存GUIの.cppファイルをビルド
    上記をインストール後にビルドすると、以下のようなエラーと出力が得られました。

    f:id:ari23:20191208153111p:plain
    MFCツールビルドエラー一覧

f:id:ari23:20191208153116p:plain
MFCツールビルド出力結果

以上から、どうやらC1001LNK1000を解決すれば良さそうだとわかりました。。

C1001とLNK1000の解決方法

色々ググった結果、最適化の設定を変えればよいことがわかりました。
以下手順です。

  1. VSのリボンにある「デバッグ」→「hogefugaプロパティページ」をクリック
    ※hogefugaはソリューション?プロジェクト?名に置き換えてください。
  2. 「構成プロパティ」→「C/C++」→「最適化」をクリック
  3. 「プログラム全体の最適化」を「いいえ」に変更し、OKをクリック
    f:id:ari23:20191208153123p:plain
    プログラム全体の最適化の設定
  4. F5キーを押下し、デバッグの開始をするとエラーが出ないことを確認できればOK

おわりに

VSをあまり普段から使わない分、意外とハマってしまいました。

参考になれば幸いです(^^)

参考文献

以下の情報より、今回の現象はコンパイラエラーであり、Visual Studio Community 2015では修正されているようです。


  1. GUI作るときって何使うべきなんでしょう?そもそもC++ではやらないかw