ここから本文です

#include<iostream> using namespace std; int main() { int res; cin>>res; ...

plopさん

2018/3/1101:00:57

#include<iostream>
using namespace std;
int main()
{
int res;
cin>>res;
if (res==1)

cout<<"1が入力されましたn\";

return0;
}
このC++言語をコンパイルしたところ
link2019というエラーが発生しました。私のC++言語

が何か間違っているのかわかりません、どの部分が間違いでまたどのような対処をすればいいか教えてください。
コンパイルにはvisual studio 2017を使用しました

閲覧数:
60
回答数:
5

違反報告

ベストアンサーに選ばれた回答

tar********さん

2018/3/1101:21:06

error LNK2019: 未解決の外部シンボル
はリンクエラー。
コンパイルができて、
各関数はバイナリに変換され
次にリンクの段階に進んで
関数のバイナリをつなぎあわせようとしたときに
あるはずの関数のバイナリがみつからない。
そんなところでしょう。

この場合、なんという名前の関数のバイナリが見つからないのかという情報が重要です。
main がないといわれるなら、main の引数などが違うのかもしれません。
言語処理系が期待するものと。

もし違う識別子が問題になっているなら
原因は別のところでしょう。

いずれにしても、どういう識別子(関数名)が問題になってるのか
意識するといいでしょう。

  • 質問者

    plopさん

    2018/3/1101:44:17

    エラーの説明で
    未解決の外部シンボル_mainが関数”int_cdecl invoke_main(void)"(?invoke_main``YAHXZ)で参照されました
    と書かれています。この文の意味が理解できません。これも教えていただけないでしょうか?

  • その他の返信(2件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜4件/4件中

並び替え:回答日時の
新しい順
|古い順

境良夫さん

2018/3/1112:43:14

種々投稿が有るようですが、
kayankdさん指定の2箇所を修正すれば、正常に動作します。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

プロフィール画像

カテゴリマスター

ikt********さん

2018/3/1112:09:12

cout<<"1が入力されましたn\";

も、おかしいです。
改行文字のエスケープシーケンスは \n

コンパイル通るはずがないので、リンクまでいけないはず。
けど、ご質問はリンクエラーなので、話が合わない。

質問時に、コピペではなく手入力し、タイプミスした
ということなのかもしれませんけれど。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

プロフィール画像

カテゴリマスター

n2q********さん

2018/3/1110:41:12

①「このC++言語をコンパイル」
②…リンクを実行…
②「link2019というエラーが発生」


時系列的に①から②を経て③に至ったというお話になっています。

そうしてみますと、

(1)コンパイルは正常に行われたがリンクの段階で不都合が生じた
(2)コンパイルは正常に行われておらず、当然ながらリンクの段階で不都合が生じた


このどちらかではないかという気がします。


お示しのコードには誤りが含まれており(return0; との記述です。0 の前にスペースがありません。)、そのことからしますと(2)の可能性が高いように思いますが如何でしょう。


『何か間違っているのかわかりません』

お書きになったソースファイルがプロジェクト内に含まれていないのかもしれません。


『どの部分が間違いでまたどのような対処をすればいいか教えてください。』

プロジェクトをもう一度作り直してみると良いと思いますよ。

ソースファイルを作るやり方は二つありまして、単にソースファイルを作るのと、プロジェクト内に含める形で作るのと、その二つです。前者の場合、それはコンパイルの対象にはなりません。プロジェクトとは無関係のソースファイルということになります。そのあたりで何かトラブルが生じた可能性があります。この作業はややこしいかもしれないので、プロジェクトの再作成が良いと思います。

また、空のプロジェクトは避けます。空ではないプロジェクトを作るとソースファイルが用意されますので、それを書き換える形でプログラミングを続けると良いです。

ただし、先頭行にある #include "stdafx.h" を消さないこと。これを残したままにしてください。消すとまた困ったことになってしまいますので。

kay********さん

2018/3/1101:13:35

n\ → \n
return0; → return 0;
スペースがいる。

余計なお節介かもしれない
間違ってはいないがif文は1文の時でも中括弧つけた方が可読性が上がると思います。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる