ここから本文です

Windows上でのC言語について

pagechopさん

2014/7/321:46:03

Windows上でのC言語について

Visual studio 2010 をインストールしてC言語を始めたのですがソースファイルを複数作ろうとすると「~~.obj : error LNK2005: _main は既に ~~.obj で定義されています。」とエラーが出ます。さらに「1>C:\Users\documents\visual studio 2010\Projects\hello\Debug\hello.exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。」と表示され、scanf関数を使おうとすると「scanfの宣言を確認してください」と出ます。
何回やっても同じエラーが出てきてしまいます。
どうすれば解決しますか?初心者なのでわかりやすく教えてくれると嬉しいです。
回答よろしくお願いします。

閲覧数:
419
回答数:
2
お礼:
100枚

違反報告

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

プロフィール画像

カテゴリマスター

meringue4さん

2014/7/322:39:44

>「~~.obj : error LNK2005: _main は既に ~~.obj で定義されています。」

main()は全体に一つだけです。
ソースファイル一つにつき一つ書いてはいけません。

>さらに「1>C:\Users\documents\visual studio 2010\Projects\hello\Debug\hello.exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。」と表示され、

そのエラーにシンボルが表示されているはずですが、それは何ですか?

>scanf関数を使おうとすると「scanfの宣言を確認してください」と出ます。

#include <stdio.h>
していますか?

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

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

1〜1件/1件中

プロフィール画像

カテゴリマスター

n2q37さん

2014/7/322:47:31

(1)ソースファイルを複数作ろうとすると「~~.obj : error LNK2005: _main は既に ~~.obj で定義されています。」とエラーが出ます。

C言語(それとC++)のプログラムは main 関数から始まることになっているわけですが、それが複数あるというエラーです。1個じゃないと駄目。どこから実行すれば良いか分からなくなりますので。

もしかして複数本のプログラムを作ろうとしていませんか?それなら、ソリューションを複数作らなくちゃ。まあ、1本のソリューションでも出来ます。プロジェクトを複数にする方法がありますので。でも高度ですよ。わざわざ難しいことはしない方が良いと思う。だから、新しいソリューションを作って下さい。

(2)さらに「1>C:\Users\documents\visual studio 2010\Projects\hello\Debug\hello.exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。」と表示され…

C++ じゃないんですよね。C 言語の場合、同じ名前の関数が複数あるとどれを呼び出せばよいか分からなくなる。なのでエラー。ていうか、これもまた(1)と同じことなのでは?1本のソリューションに複数のプログラムを混ぜるのは十分に慣れてからにしたほうが良いです。

(3)scanf関数を使おうとすると「scanfの宣言を確認してください」と出ます。

それって、これのことかな?次のように <stdio.h> をインクルードする前に _CRT_SECURE_NO_WARNINGS を #define します。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

Visual C++ って職人用なんですよね。で、職人の場合は scanf を使ってちゃダメよっていう話。入門の場合は教科書で scanf を思いっきり使ってるわけで、そこはどうしようもないわけです。なので、こういう回避策が用意されているのです。

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

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

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

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

閉じる

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