C言語

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

step of compile c language on linux
プログラム学生
プログラム学生

Linuxサーバーで、どうやってC言語をコンパイルすればいいのかな...?

Linuxサーバーでは、手持ちのWindowsのパソコンから、「ターミナル」と呼ばれるツールを使って作業することが多いんだけど、その「ターミナル」を使ってC言語をコンパイルする方法を説明するね。

Tommy
Tommy

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サーバですが、レンタルサーバを使っている場合は、下の記事でプログラミングする環境の作り方を説明しています。

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

レンタルサーバでプログラミングする方法【→レンタルサーバでできる!】

次に、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コンパイルを実施すると、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言語ソースコードをオブジェクトファイルにすることが可能です。上記のような指定で、hello.c hello2.cにそれぞれ対応するhello.oとhello2.oが生成されました。

C言語コンパイル方法5:-o オプション .oファイルから実行ファイル生成

コンパイル

gcc -o HELLO2 hello2.o

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

実行

$ ./HELLO2
Hello World

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

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

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

【C言語】linuxでの開発環境の作り方【→プログラム初心者向け】

-C言語
-, ,

Copyright© Tommy's blog , 2020 All Rights Reserved Powered by AFFINGER5.