めーぷるのおもちゃばこ

- アイドルになりたいエンジニア女子の制作日記 -

C言語のMacでのコンパイルと実行

コンパイル方法

🐼コンパイルの流れ

hello.cという名前で以下のテストプログラムを作成します。
今回の例ではこれをデスクトップに保存しておきます。

#include<stdio.h>
int main() {
  printf("Hello, World\n");
  return 0;
}

  
ターミナル を開き、

$ cd Desktop/

  
でデスクトップに移動、
gccコマンドで先ほどのhello.cをコンパイルします。

$ gcc hello.c

  
コンパイルが成功するとa.outという実行ファイルができます。
lsコマンドで確認してみるとあります。

$ ls 
a.out     hello.c

  
このa.outを実行します。

$ ./a.out
Hello World

といったかんじです。

   

🐼ファイル名の指定

ここで浮かんだ疑問として、「これ同じ階層にべつの.cファイルがあったらどうなるの?です」
別の.cファイルを作ってコンパイルしてみると、上書きされました。

   #include<stdio.h>
   int main(){
       printf("Test C\n");
       return 0;
   }

$ gcc test.c
$ ./a.out
Test C


   
上書きされちゃやだ///なのでファイル名を指定してコンパイルします!
作成される実行ファイルの名前を指定したい場合にはgcc-oオプションを使用するみたいです。

$ gcc -o hello.txt hello.c

  
これでlsで確認してみるとさきほどのa.outとは別にhello.txtができています。

$ ls
a.out     hello.c   hello.txt test.c

<補足>ーーーーーーーー
ちなみに.txtのところはOSが「どのアプリで開くべきか」を知るためだけにあるので、.txtでも.logでもテキストエディタにもっていければなんでもいいみたいです。
ダブルクリックしたときになにを起動するか、の識別子だと思っておけばいいです。
コマンドラインからやる場合は拡張子がなくてもおっけーです。
拡張子無しだとlsだとでてこないですがls -aで確認することができます。
ーーーーーーーーーーーー

  
hello.txtを実行すると、ちゃんとhello.cの内容が実行されます。

$ ./hello.txt
Hello, World