質問: C言語の学習を始めようと思って、xcodeとcommandlinetoolsをインストールしました。そして新しくC言語のプロジェクトをxcodeで立ち上げて学習を始めたのですが、同一プロジェクト内ではmain関数は一度しか使えないようで学習するのに困っています。 例えば、Aということを学んで、そのプログラムを自分でも書いてみて、実行するとします。 ``` #include int main(int argc, const char * argv[]) { printf("Hello, World!\n"); return 0; } ``` これで実行はもちろん普通に通ります。 次に、Bということを学んで、同一プロジェクト別ファイルに以下のプログラムを書いて実行してみます。 ``` #include int main(void){ return 0; } ``` するとエラーが出てしまいます。多分同一プロジェクトで独立したプログラムを書いている(main関数を二つ使っている)のが悪いのですが、ファイルごとにプロジェクト作るわけにもいきませんし学習ではどうしてもこうなってしまうような気がします。 もちろんプログラムを書いたファイルをターミナルで個別にコンパイル(であっている?)すれば普通にできますが、xcodeでコマンド一つで実行するのに比べると。。。という感じです。 Pythonを勉強した時はこんなこと全くなかった(同一プロジェクトに独立したファイルを複数いれて、それぞれ一つづつ実行できた)ので困惑してます。xcodeではできないのであればC言語で学習に最適なIDEなどないでしょうか?または、ご存知なければ自分はこういう環境でやってたよ!とか教えて欲しいです。 プログラミングはPythonくらいしかやったことがなく、コンパイラとかもまだよくわかっていない状況なのですが、わかりやすく教えていただけたら嬉しいです。 環境 OS X El Capitan 10.11.5 Xcode 7.3.1 CommandLineTools 7.3.1.0.1.1461711523
回答: こんばんは、Eclipseを使えば一応できるようです。 ちょっと古いですが、以下の記事を参考にしてみてください。 Eclipse CDTのダウンロード&インストール の中の → 1つのプロジェクトに複数のmain関数を共存させる方法 念のため、最新のEclipse Neonで試してみたけど大丈夫でした。 ちなみにEclipseでは、Javaも一つのプロジェクトでmainがあるクラスを2つ以上持つことが可能です。 --- ここから補足 --- そもそもですが、PythonとCでは、動作原理が違うので、仕方の無いことです。 インタプリタ方式(Python)とコンパイル方式(C言語)という区別もついてないと想像しますが、 その辺ご興味があれば、検索してみてはいかがでしょうか、それも含めて勉強だと思います。 あと、IDEというのは、複数のファイルをまとめてプロジェクトという形で管理しやすくする アプリケーションですので、ファイル1〜2つ程度のプログラムを書いているうちは メリットよりもデメリットを感じるのかも知れませんね。 別に使わなければいけないものでもないので、プロジェクトというのがめんどくさければエディタでもいいわけです。 最近のモダンなエディタなら入力補完もしてくれるので、そっちを使ってもいいのじゃないでしょうか (Sublime Textとかatomとか、Visual Studio Codeとかいくらでもあります) まぁ、プロジェクトを作るのなんて、素のコンパイラとエディタだけで いろいろ準備するめんどくささに比べれば遥かに簡単なことなので 必要なら100でも200でも作ればいいと個人的には思いますが^_^; (いらなければ消すだけですしね)