2012.04.25 追記
Xcodeをインストールしているのに、gccコマンドを実行しても「コマンドが見つからない」と出てしまうというご質問を頂きました。
調べてみたところ、どうやら2012年02月公開のXcode4.3 for Lion ではコマンドラインツールが自動インストールされないようです。
Xcode 4.3でコマンドラインツールをインストールする手順 – FAMLog
ですから、Xcode4.3 for Lion でgccコマンドが効かない!という方は、Xcodeから下記手順でコマンドラインツールをインストールしてみて下さい。
Xcode4.3 for Lion はターミナルでgccコマンドが効かない!? | 極上の人生
[追記ここまで]
きっかけはPosterousでみかけた記事
きっかけはPosterousでみかけたこの記事。
(※ 2014.04.05現在、下記の「日刊でぃわお」はPosterous サービスの終了と共に閉鎖されております。)
れいさん( @Sayobs )の本を読んで、C言語の勉強から入ってみようと考えたが、MacでのC言語の練習環境を用意する方法がよくわからなかったみたいです。 *01まあ、今はとっくに解決している可能性が大ですが。
テキストエディタとターミナルでC言語の練習環境を作ってみよう
私個人はEclipseを使うのがお勧めなのですが、
iOSプログラミングへの取っ掛かりとしてC言語を勉強するならば、EclipseよりはXcodeを使う方がよいはず。
しかし、XcodeのインターフェースはC言語向けってよりは、Objective-C向け。 *02つかCocoa向け?
そんなわけで、テキストエディットとターミナルを使ったC言語の練習環境を用意してみましょう。
用意するもの
まず、以下のものを用意します。
1)Mac
… まあ、これがないと始まりませんね。 *03私のMacはMacBook Air 13inch OS X Snow Leopard 10.6.7です。
2)Xcode
… 結局、Xcodeは使います。
こいつを入れておくとコンパイラ *04プログラムを実際に動く形に焼き直すためのプログラムとでも憶えておいて下さい。 がインストールされます。
3)(Alfred)
… 別に要りません。
が、これがあるとテキストエディタやターミナルの起動が楽なので、是非、入れておいて下さい。
4)テキストエディット
… これでプログラムを書きます。
最初からMacにインストールされています。
5)ターミナル
… これでプログラムのコンパイル指示を出したり、プログラムを実行したりします。
最初からMacにインストールされています。
手順(Hello World!)
さあ、それでは手順です。
1.Xcodeのダウンロードとインストール
コンパイラがないとプログラムを動かせません。
Xcodeをインストールすれば、コンパイラも一緒にインストールされます。
ダウンロードして、インストールしてしまいましょう。
Xcodeは、Mac AppStoreからなら、600円で購入可能です。
また、Apple Developer Program に登録しているなら、無料で入手可能です。
(※2014.04.05 現在は無料です!)
↓
(2.Alfredをインストール)
Alfredをインストールします。(別になくても平気です。)
これまたMac AppStore からダウンロードが可能です。
Alfredはアプリケーションランチャーと呼ばれるソフトで、目的のソフトを素早く呼び出す事ができます。
便利なので、是非インストールしておくことをお勧めします。
↓
3.練習用ディレクトリを作成
Finderで練習用ディレクトリ(フォルダ)を作成します。
場所はMacintosh HD直下が良いでしょう。 *05あとで探すの面倒なので、なるべく探しやすい場所に作ります。
2014.04.05 追記・改訂
練習用ディレクトリの作成場所は、ターミナルを開いた時のカレントディレクトリにするのが便利です。
カレントディレクトリの場所は、ターミナルで「pwd」と入力してreturnキーを押して下さい。
カレントディレクトリのパスが表示されるはずです。
(おそらく「/Users/あなたのユーザー名」が表示されています。)
表示されたカレントディレクトリのパスを選択して、コンテキストメニュー*06Windows でいう右クリックメニューを開きます。
「サービス」という項目が一番下にあるので、そこを選んで、表示された項目から「Finder で表示」を選びます。
Finder が開いてカレントディレクトリが選択されますので、そこをダブルクリックして開きます。
開いた場所(おそらくユーザーディレクトリ下にある、あなた用のディレクトリでしょう)に練習用ディレクトリを作ります。
フォルダ名は半角英数字のみで付けるようにしましょう。 *07これまた、その方が何かと楽だからです。
私は、practice_c と言う名前にしました。 *08まんまですな。
↓
4.テキストエディットを起動
テキストエディットを起動します。
Alfredをインストールしているならば、option + (space)でランチャーを起動して、「te」まで入れた段階でテキストエディットが候補に表示されるので、Returnキーで起動できます。
もちろん、普通に起動してもOKです。
↓
5.プログラムを書く
テキストエディットでプログラムを書きます。
今回は、プログラム学習の定番「Hello World」を書いてみましょう。
以下の内容をテキストエディットで書きます。
#include<stdio.h> int main(void){ printf("Hello World!n"); return 1; }
↓
6.書いたプログラムを保存
手順3で作った練習用ディレクトリ内に、書いたプログラムを保存します。
ファイル名も半角英数字でつけましょう。
(今回はhello.c と付けました。)
↓
7.ターミナルを開く
ターミナルを開いて、プログラムをコンパイルします。
コンパイルしないとプログラムは動きません。
これまた、Alfredを入れていると、起動が楽ちんです。
option + (space)でランチャを起動して、「ter」まで入力すれば、ターミナルが起動候補に表示されるでしょう。
ターミナルを開いたら、ターミナル内のディレクトリを練習3で作ったディレクトリ *09今回の場合は practice_c ディレクトリ に移動します。
ターミナル内に以下の内容を入力してから、returnキーを押して、ディレクトリを移動しましょう。
cd ./practice_c/
ディレクトリを移動したら、コンパイルです。
ターミナルに続けて以下の内容を入力して、returnを押して下さい。
gcc hrllo.c
コンパイルに成功すると、practice_cディレクトリ内に「a.out」というファイルが出来ているはずです。
↓
8.コンパイルしたファイルを実行する
ターミナルに戻って、以下の内容を入力して、returnを押してください。
./a.out
↓
9.Hello World!
ちゃんとHello World!が表示されました。
他のC言語プログラムも一緒
他のC言語プログラムでも手順は同じです。
テキストエディタで書いて保存。
ターミナルでコンパイルしてから実行。
これだけです。
もし、上記の手順で「何それ?」と言う場合や、それ間違ってんじゃねぇの?と言う内容がありましたら、コメントなりTwitterにメンションなり下さると嬉しいです。
@uma_blue
2012.05.31 追記
コンパイル後に出力されるファイル名について。
「コンパイルすれば全てa.outになるんですか??」という質問を頂きました。
その点について以下に補足記事がありますので、ぜひ見ていって下さい。
Shogo Okada0206 さん、質問ありがとうございます。
超わかりやすい説明ありがとうございます!!まだ解決しておらずWindowsでやるしかないかな、と思い始めてるところでした。これ早速試してみます^^
この通りにやって無事に動かすことができました!
ひとつだけ質問なのですが、「n」に含まれている、スラッシュの逆向きの文字はどうやって入力するのでしょうか?
プログラミング以前の話で申し訳ありませんm(__)m
>でぃー さん
返信遅くなりました。
「」(バックスラッシュ)ですね。
Macの日本語キーボードだとoption+¥です。
私も以前に悩みました。
そちらは地震で大変なご様子。
この場を借りてお見舞い申し上げます。
お気をつけて。m(_ _)m
>あおのうまさん
返信ありがとうございます。
「バックスラッシュ」というんですね。
入力方法がわからなくていちいちコピペしてましたw
地震の方も心配いただいてありがとうございます。
まだまだ停電中のところもありますが、街中をざっと見た感じでは、
前回よりもダメージは全然軽いみたいです。
気持ち切り替えて頑張ります^^
gcc と打ってもコマンドが見つからないと出てしまいます。Xcode入れてからなにか操作がひつようなのでしょうか?
>>Naoyuki 1205 さん
ひょっとして、OSはLionだったりしますか?
もしそうなら、こちらは参考になりませんでしょうか。
http://okwave.jp/qa/q7419707.html
結論としては、ここです。
http://www.famlog.jp/article/1942
最後の4行あたり。
ちなみにGoogleで「Mac ターミナル gcc コマンドが見つからない」で検索した結果から辿ってみました。
ご参考まで。<(_ _)>
>Naoyuki 1205 さん
ひょっとして、OSはLionだったりしますか?
もしそうなら、こちらは参考になりませんでしょうか。
http://okwave.jp/qa/q7419707.html
結論としては、ここです。
http://www.famlog.jp/article/1942
最後の4行あたり。
ちなみにGoogleで「Mac ターミナル gcc コマンドが見つからない」で検索した結果から辿ってみました。
ご参考まで。
理系大学の学生です。
授業ではWindowsを使ってプログラミングの学習をしているのですが、自宅では扱いやすいMacを使って学習したいと思っていました。
このページを見てそれができるようになりました。
ありがとうございます
お役に立てたなら何よりです。(^-^)
コンパイルすれば全てa.outになるんですか??
質問ありがとうございます!
そこが気になる方にはこちらをどうぞ。
MacのターミナルでC言語の練習環境を用意してみたよ..の補足
https://kawairi.jp/weblog/vita/201104072142
http://sachipps.byeto.jp/archives/1229
興味深い。。。
カーニハンとリッチャーの本をみた時をおもいだしました。
マックプロを使っています。X-codeは、ダウンロードしたのですがコンパイルできません。
このページのとおりにターミナルでやってみたのですがNo such file or directoryと出てしまいます。
どのようにすれば良いでしょうか?
mac help 1 “No such file or directory” と言われているということは「ファイルまたはディレクトリが見つかりません」と言われているわけです。
では、確認せねばならないのは、とりあえず以下の3つ。
1.指定したディレクトリ(例ではpractice_c フォルダ)はあるか?
2.指定したファイル(例ではpractice_c 内のhrllo.c ファイル)はあるか?
3.ターミナルで命令実行するパス(ディレクトリ)移動は出来ているか?(例だとcd /practice_c/ のコマンド入力でエラーが出ずに指定ディレクトリに移動している)
おそらく2014.04.05追記・改訂で示した作業をしてくれていると思うのですが、Finder で表示された場所は、pwd で確認した場所そのものなので、そこでさらにダブルクリックしてpwd内に練習用ディレクトリを作る必要があります。
以上を確認してみて下さい。
ありがとうございます。早速やってみましたが、practice_cを自分の名前のフォルダ?の元に作成しましたが、まだ”No such fille or direkutory”となります。
ちなみにコマンドツールの入手をターミナルで行ったのですが、見つかりませんでしたが教えてください。
mac help 1 あー、cd のディレクトリ指定で「.」が抜けとりました。
以下で入力してみてください。
cd ./practice_c/
ちなみに、ターミナル内でのディレクトリ移動は自由に出来る様になっておいた方が良いので、ドットがどういう意味を持つのか、「../」だとどうなるかなども、ついでに調べておくと、以降の勉強で役に立つと思います。
以上、老婆心ながらご参考まで。
うまいこと行かなかったら、また書き込み願います。
ありとうございます。コンパイルも出来ました。
x code にコンパイラも入っているということですか?
前回やったときは、コンパイルできたのですが本日やったらできなくなってました。
こんな表示が
Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.
教えてください。
>g help さん
おしい。
表示をしっかりメモ取れているので、それをそのまんまGoogle 検索に貼り付けて検索してみて下さい。
どうすれば良いか、ずばりな内容がヒットします。
いちおう、参考まで。
http://qiita.com/kazoo04/items/880283612abd85c0610a
#include
int main(void)
{
int a;
printf(“何か数値を代入してください¥n”);
scanf(“%d” , &a);
printf(“入力された値は %d です” , a);
return 0;
}
を試したところエラーが出ました。どこが悪いか教えてください。
>YG_black さん
ごめんなさい。
さすがに、何やった時に、どんなエラーが出たのかわからんと何とも答えようがないです。