• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語のエラー LNK1120: 外部参照)

C言語のエラー LNK1120: 外部参照

このQ&Aのポイント
  • C言語のプログラムでLNK1120エラーが発生する場合の問題解決方法について調査しました。
  • ネットで調べ、ファイルの形式をWIN32コンソールアプリケーションに変えても、エラーが取れませんでした。
  • VC++の2010を使っている場合、LNK1120エラーの対処方法があるか質問しました。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

C/C++では、最後にobjファイルをまとめてDLLやEXEにする「リンク」という作業があり、このときに、各ファイルやライブラリにちらばっている関数や変数等の名前(シンボル)を、その 実体と結びつける作業を行います。 このとき、その結びつけるべき相手が無いのときに出るのがこのエラーです。 > .obj : error  LNK2019: 未解決の外部シンボル (?MyMain_4@@YAXXZ) が関数 _WinMain@16 で参照されました。 とあるように、 MyMain_4という関数が、宣言だけされていて、その実体が無いのがエラーの原因です。 C++の場合、多重定義というのがあって、同じ関数名でも、引数が違うと別の関数とみなされます。 例えば、 mymain_4.hの中で 「MyMain_4(int)」と宣言していて、実際の定義(命名から想像するとmymain_4.cppの中?)では「My_main_4(char)」が定義されてる、とか、そういう間違いは無いですか?

noname#140100
質問者

お礼

私にも、大変わかりやすい回答で有り難うござます。 試してみて解決し、なんとなく理解も出来ました。 参考書を見ながら勉強していまして、 mymain_4を宣言しておき内容を書き込んでいませんでした。 内容を記述することにより解決できました。 本当に有り難うございます。 勉強頑張ります。

関連するQ&A

専門家に質問してみよう