C言語

【C言語】linuxでコンパイルする手順【→レンタルサーバでできる!】

1月 13, 2020

step of compile c language on linux
プログラム女子
Linuxサーバーで、どうやってC言語をコンパイルすればいいのかな...?
Linuxサーバーでは、手持ちのWindowsのパソコンから、「ターミナル」と呼ばれるツールを使って作業することが多いんだけど、その「ターミナル」を使ってC言語をコンパイルする方法を説明するね。
Tommy

この記事で分かること

  • C言語の「コンパイル」の意味が分かる
  • レンタルサーバーで「コンパイル」する手順が分かる
  • GCCの「コンパイル」のオプションが分かる

C言語プログラムをlinuxでコンパイルする概要

summary of compile c language on linux

ここでは、自分で作ったC言語プログラムをlinuxサーバーを使ってコンパイルする手順を説明します。

「コンパイルする」とは、C言語などの人間が理解できる言語を、機械が認識できる言語に翻訳することです。コンパイル方法にはいくつかの種類がありますが、その違いについて本記事では具体例を使って説明します。

C言語プログラムをlinuxでコンパイルする前提環境

environment of compile c language on linux

この記事では、「linux CentOS 5.5」の環境で、C言語を実行する方法を説明します。

現在多くのレンタルサーバはlinuxサーバですが、レンタルサーバを使っている場合は、下の記事でプログラミングする環境の作り方を説明しています。

もし、まだプログラムする環境ができていない方は、先にこちらの記事を読んで、プログラミングできる環境をつくることをおすすめします。

オススメ
how to programming on rental server
レンタルサーバでプログラミングする方法【→ブログのサーバでできる!】

続きを見る

次に、CentOSのバージョンと、C言語コンパイラのバージョンを確認します。

コンパイラとは、プログラムを機械が認識できる言語にコンパイル(翻訳)するツールのことです。

  • CentOS 5.5

CentOSのバージョンは「5.5」でした。

$ cat /etc/redhat-release
CentOS release 5.5 (Final)
  • gcc

linuxのC言語コンパイラのGCCのバージョンを確認します。
GCCのバージョンは「4.1.2」でした。

$ gcc -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --disable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=x86_64-redhat-linux
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-55)

C言語プログラムをlinuxでコンパイルする具体例

example of compile c language on linux

ここでは、コンパイル方法を「オプションなし」「-c オプション」「-o オプション」「-c オプション 複数ファイル」「-o オプション .oファイルから実行ファイル生成」の5つのオプションについて紹介します。

C言語コンパイル方法1:オプションなし

コンパイル

コンパイルは、コマンド「gcc」の引数にコンパイルしたいソースコード(ここではファイル名「hello.c」とします)を渡すことで実行することができます。

$ gcc hello.c

オプションなしでGCCコンパイルを実施すると、「a.out」という名前の実行ファイルが生成されます。

実行ファイルの実行

$ ./a.out
Hello World

実行ファイル「a.out」が実行されると、「Hello World」の文字列が表示されました。これで、実行ファイルa.outが正しく実行できたことが分かります。

C言語コンパイル方法2:オプション「-c」を使用

コンパイル

$ gcc -c hello.c

コンパイルオプション「-c」を指定してコンパイルすると、オブジェクトファイル「hello.o」が生成されます。このオブジェクトファイルは、ソースコードから実行ファイルにコンパイルするまでに中間のファイルになります。このような中間ファイルは、複数のファイルを1つの実行ファイルにコンパイルする時などに用いられます。

C言語コンパイル方法3:オプション「-o」を使用

コンパイル

$ gcc hello.c -o HELLO

先ほど生成した、オブジェクトファイル「hello.o」を「HELLO」という名前の実行ファイルにコンパイルします。コンパイルオプション「-o」は生成される実行ファイルの実行ファイル名を指定することができます。今回は、実行ファイル名として「HELLO」という名前を指定しました。

実行ファイルの実行

$ ./HELLO
Hello World

HELLOが実行を実行すると、「Hello World」の文字列が表示されました。これで、実行ファイルHELLOが正しく実行できたことが分かります。

C言語コンパイル方法4:オプション「-c」で複数ファイルのコンパイル

コンパイル

$ gcc -c hello.c hello2.c

コンパイルオプション「-c」を指定すれば、複数のC言語ソースコードをオブジェクトファイルにすることが可能です。上記のような、「gcc」コマンドのオプションに「-c」を指定することで、「hello.c 」と「hello2.c」ソースコードそれぞれに対応するオブジェクトファイル「hello.o」と「hello2.o」が生成されました。

C言語コンパイル方法5:オプション「-o」で1つの実行ファイル生成

コンパイル

gcc -o HELLO2 hello2.o

先ほど生成した、オブジェクトファイル「hello2.o」を「HELLO2」という実行ファイルにコンパイルします。コンパイルオプション「-o」は生成される実行ファイルの実行ファイル名を指定するオプションなので、今回は、「HELLO2」という名前を指定しました。

実行ファイルの実行

$ ./HELLO2
Hello World

先ほどと同様に、実行ファイル「HELLO2」を実行すると、「Hello World」の文字列が表示されました。これで、実行ファイル「HELLO2」が正しく実行できたことが確認できました。

C言語プログラム実行の手順について

linux環境で、どのように自分で作ったC言語プログラムを実行の手順は、次の記事で説明しています。

オススメ
how to create c development linux environment
【C言語】linuxでの開発環境の作り方【→プログラム初心者向け】

続きを見る

-C言語
-

© 2021 Tommy's blog Powered by AFFINGER5