Visual Studio でc言語を始めたのですがおなじソースファイルに複数のファイルを作成したら既に ~.objで定義されていると出て、またmain関数など関数の多重定義のせいか実行できませんでした。
複数のフォルダを作成すると管理し辛いので他の解決策を探しています。何かありますでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
こんにちは。
おなじソースファイルに複数のファイルを作成
恐らく1つのソース・ファイルに複数のmain()関数を書いているですね?
コンパイルする際に指定した全てのソース・ファイルはリンクされて1つのexeができます。そのexeを実行する際に最初に呼び出される関数がmain()関数です。
そのmain()関数が複数あると、どれを呼び出したら良いのか分かりませんので、エラーになります。
お手軽に複数のプログラムを作りたい場合、いくつか選択肢があります。
究極のお手軽さはWandboxと思います。
linux上で実装されていますからWindows API周りは学習できませんが、gccやclang等の非常にメジャー、かつ、規格により適切に準拠したコンパイラをサポートしていますのでC言語自体を学ぶためには最適と思います。
Windows APIも含めて学習したい場合は、やはりVisual C++を使うのがスムーズと思います。(Borland C++やMinGW等、他にもいくつか選択肢はありますが、情報が少ないことが痛いです。またMinGWは元々linux用コンパイラのgccをWindows向けに移植したものです。linuxとWindowsでは漢字処理の文化が大きく異なるため漢字処理ではかなり辛い思いをすると思います。)
Visual C++でお手軽にexeを作りたい場合、ちょっと慣れは必要ですが、CMakeとコマンドプロンプトが楽です。CMakeならお手軽にVisual C++用のソリューションを作ってくれますので。
CMakeをダウンロードしてインストール後、C言語のソース・ファイルとCMakeLists.txtをメモ帳等で作ります。
C言語のソースがhello.cならば、CMakeLists.txtは以下の通りです。
text
1project(hello) 2set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4 /EHsc") 3add_executable(hello hello.c)
そして、コマンド・プロンプトを起動し、上記ファイルを用意したフォルダへ移動後、以下のコマンドを入力すると、hello.slnができますから、それをダブルクリックすればVisual Studioが立ち上がります。
mkdir hello_build
cd hello_build
cmake ..
後は、右側のソリューション エクスプローラーからhelloを右クリックして「スタートアッププロジェクトに設定(A)」をすれば、いつものようにデバッグできます。
細かい手順を第12回目 Visual Studio 2017 Communityを準備するでC++向けに解説しています。
CMakeLists.txtの部分を上記に読み替えれば、C言語でも通用しますのでもしよかったら参考にされて下さい。
コマンド・プロンプトの起動方法は検索すると多数でてきますので、それらを参考にして下さい。
ディスクトップにフォルダを作って、そこにソースを用意して下記コマンドで移動できます。
cd ソース・ファイルを用意したフォルダのパス
その際、cd
まで入力しておいてコマンド・プロンプトの黒いウィンドウへディスクトップ上のフォルダをドラッグ&ドロップすると簡単に「ソース・ファイルを用意したフォルダのパス」を入力できます。
【追記】
思い出しました。Visual Studio 2017からCMake連携に対応していますので、コマンド・プロンプトを使う必要ありませんでした。
上記記事の「3-2-4.Visual StudioのCMake連携機能によるビルドと実行」を参照下さい。
投稿2017/10/15 11:05
編集2017/10/15 12:35総合スコア23272
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/15 15:56