2.3. ソースからのソフトウェアのビルド
ソフトウェア構築プロセス中に、ソースコードは、RPM を使用してパッケージ化できるソフトウェアアーティファクトに変換されます。
2.3.1. ネイティブにコンパイルされたコードからのソフトウェアのビルド リンクのコピーリンクがクリップボードにコピーされました!
次のいずれかの方法を使用して、コンパイル言語で書かれたソフトウェアを実行可能ファイルにビルドできます。
- 手動ビルド
- 自動ビルド
2.3.1.1. サンプル C プログラムを手動ビルド リンクのコピーリンクがクリップボードにコピーされました!
手動ビルドを使用して、コンパイル言語で書かれたソフトウェアをビルドできます。
C で書かれたサンプルの Hello World プログラム (cello.c) には次の内容が含まれています。
#include <stdio.h>
int main(void) {
printf("Hello World\n");
return 0;
}
手順
GNU コンパイラーコレクションから C コンパイラーを呼び出して、ソースコードをバイナリーにコンパイルします。
$ gcc -g -o cello cello.c作成されたバイナリー
celloを実行します。$ ./cello Hello World
2.3.1.2. サンプル C プログラムの自動ビルドの設定 リンクのコピーリンクがクリップボードにコピーされました!
大規模なソフトウェアでは、自動ビルドが一般的に使用されます。Makefile ファイルを作成し、GNU make ユーティリティーを実行することで、自動ビルドを設定できます。
手順
次の内容を含む
Makefileファイルをcello.cと同じディレクトリーに作成します。cello: gcc -g -o cello cello.c clean: rm cello install: mkdir -p $(DESTDIR)/usr/bin install -m 0755 cello $(DESTDIR)/usr/bin/cellocello:、clean:、install:の下の行は、行頭にタブ文字 (タブ) を追加する必要があることに注意してください。ソフトウェアをビルドします。
$ make make: 'cello' is up to date.ビルドが現在のディレクトリーですでに利用可能であるため、
make cleanコマンドを入力してから、makeコマンドを再度入力します。$ make clean rm cello $ make gcc -g -o cello cello.cGNU
makeシステムが既存のバイナリーを検出するため、この時点でプログラムを再度ビルドしても効果がないことに注意してください。$ make make: 'cello' is up to date.プログラムを実行します。
$ ./cello Hello World