• 締切済み

Visual C++でC言語の基礎学習

Visual C++を使ったC言語についての質問です。 (アプリケーションの作成ではなく、コマンドプロンプト上で起動する基礎的な文法の学習です) Win32コンソール プロジェクトを作成し、そのプロジェクトの中でCのソースファイルを作成して実行確認をしようと思っています。 プロジェクト内のソースファイルが1つだけだと正常にビルドできますが、2つ以上のソースファイルを作成してビルドすると 「1 つ以上の複数回定義されているシンボルが見つかりました。」 というエラーがでてしまい、実行することができません。 新たにWin32コンソール プロジェクトを作成し、その中でソースファイルを作成しなければ実行できないのでしょうか? よろしくお願いします。

みんなの回答

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

>プロジェクト内のソースファイルが1つだけだと正常にビルドできますが、2つ以上のソースファイルを作成してビルドすると >「1 つ以上の複数回定義されているシンボルが見つかりました。」 >というエラーがでてしまい、実行することができません。 その2つのソースファイルそれぞれにmain()がありませんか? プロジェクトでは最終的に複数のソースファイルから1つのEXEやDLLを作成することになりますので、 特に設定を変更していない状態ならば各ソースファイルからコンパイルされたオブジェクトファイルをリンクします。 よって… >新たにWin32コンソール プロジェクトを作成し、その中でソースファイルを作成しなければ実行できないのでしょうか? ということになります。

  • _himajin_
  • ベストアンサー率65% (128/195)
回答No.1

同じ名前のグローバル変数や関数を2つのファイルで定義してませんか? たとえば↓みたいな感じで。 aaa.c: int global_var; /* どこからでも見える変数 */ bbb.c: int global_var; /* どこからでも見える変数 */ これに該当する場合は、名前を変えるか、staticを付けて別なファイルからは見えないようにしてやるか、またはグローバル変数ではなく関数内ローカルな変数にすることなどで解決します。 aaa.c: static int global_var; /* aaa.c の中からしか見えない */ bbb.c: static int global_var; /* bbb.c の中からしか見えない */

関連するQ&A