Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linux上でプログラム開発者としてMakefileを自動生成する全過程

Linux上でプログラム開発者としてMakefileを自動生成する全過程

  

automake /autoconfエントリ、あなたはMakefileに遭遇したにちがいない、それはあなた自身のプログラムをコンパイルするためにmakeコマンドを使うことは非常に便利です。一般的に、誰もが手作業で簡単なMakefileを書きますが、フリーソフトウェアの規約に準拠するMakefileを書くのはそれほど簡単ではありません。

この記事では、autoconfおよびautomakeツールを使ってフリーソフトウェアの規約に準拠したMakefileを自動的に生成する方法を説明します。このように、通常のGNUプログラムと同じように'を使用します。 /設定','作る',' INSTAL&'を行い、Linuxシステムに移動するためのプログラムをインストールすることができます。これは、オープンソースソフトウェアになりたいプログラマー、または小さなToysを自分で書いているだけの場合は、この記事が非常に役立ちます。

最初に、Makefileの紹介

Makefileは自動コンパイルとリンクのために使われますプロジェクトにはたくさんのファイルがあります。 Makefileはファイルの情報を記録し、作成時にはリンク時にどのファイルを再コンパイルする必要があるかを決定します。

Makefileの目的は、ファイルをコンパイルするためにどのファイルに頼るべきかをコンパイラに知らせることです。それらの依存ファイルが変更された場合は、コンパイラが自動的に最終文書は時代遅れ発見し、対応するモジュールを再コンパイル生成されます。
は、

Makefileの基本的な構造は非常に複雑ではありませんが、アプリケーション開発者は、Makefileを書き始めたとき、多くの場合、多くの場合、その開発環境、関連付けられた慣習自分自身を書き、自分のMakefileを書き込むかどうかを疑問に思いますシステム環境変数またはパスが変更された後、Makefileを変更する必要があるかもしれません。これは手書きのMakefileに関する多くの問題を引き起こしており、automakeはこれらの問題を解決するのに役立ちます。

のconfigure基礎を使用し、その後、別のマクロファイルに従ってMakefile.inを生成し、automakeはを使用して、アプリケーション開発者は、唯一のconfigureのautoconfによって生成されたマクロファイルに基づいて、事前に定義されたマクロを含むいくつかの単純なファイルを書く必要があり、automakeにカスタムメイドのMakefileを生成するためのMakefile.in。以下に、Makefileの自動生成方法を詳しく説明します。

次に、使用する環境

この記事で紹介するプログラムは、Linuxディストリビューション:Fedora Coreリリース1に基づいています。これには、autoconfと、使用したいautomakeが含まれます。

3つ、helloworldから始めましょう

私たちは、よく使うサンプルプログラムhelloworldから始めました。

次の手順では、と言うことだけである場合:

新しい三つのファイル:

helloworld.cconfigure.inMakefile.am

次に実行します< BR>

のaclocal;のautoconf、automakeには--add-行方不明; ./configureを、作る; ./helloworld

Makefileを生成見ることができ、かつhelloworld.cでコンパイルすることができます。

非常に単純です。いくつかのコマンドでカスタムのMakefileを作成できます。

今すぐ詳細なプロセスを導入:

1、

私たちはHelloWorldのプログラムおよび関連ドキュメントを格納するためにそれを使用し、作業ディレクトリにhelloworldディレクトリを構築するディレクトリ
を構築例えば、/home /my /buildの下に:

$ mkdir helloword $ cd helloworld

2、helloworld.c

を入力してから、お気に入りのエディターで書き込みます。 hellowrold.cファイル(vi helloworld.cなど)。以下のコードをhelloworld.cの内容として使用してください。

int main(int argc、char ** argv){printf("こんにちは、Linux World!\\ n"); return 0;}

完了したら保存して終了します。

helloworldディレクトリに自分で書いたhelloworld.cがあるはずです。

3、私たちは私たちは、ソースコードのディレクトリに応じてconfigure.inファイルテンプレートを生成を助けるために使用します。

自動スキャンコマンドを
設定生成。

コマンド:

$ autoscan $ lsconfigure.scan helloworld.c

実行後にファイルがhellowroldディレクトリに生成されます。config.scanをconfigureとして使用できます。 .inの青写真。

configure.scanは今、名前を変更configure.inこと、そしてそれを編集し、以下の内容に応じて変更し、無関係な文を削除します:

============ ==================================== =========================== ============# - * - のautoconf - * - 。#プロセス

AC_INIT(helloworld.c)AM_INIT_AUTOMAKE(HelloWorldの、1.0)
configureスクリプトを生成するためにautoconfでこのファイル

programs.AC_PROG_CC

ライブラリの#チェックのための#かどうかをチェックします。

ヘッダファイルのための#かどうかをチェックします。

のtypedef、構造体、およびコンパイラの#チェック特性。

ライブラリfunctions.AC_OUTPUTのための#チェック(Makefileの)============================ configure.inコンテンツ
=========================================エンド

その後、実行2つのaclocal.m4ファイルを生成し、設定し、それぞれがaclocalのコマンドとautoconf、:

$のaclocal $ lsaclocal.m4 configure.in helloworld.c $のautoconf $ lsaclocal.m4 autom4te.cacheのconfigure configure.inのHelloWorld。 c

configure.inの内容はいくつかのマクロ定義であり、これらのマクロはautoconです。 f処理後、システムの特性、環境変数、ソフトウェアに必要なパラメータをチェックするシェルスクリプトになります。

autoconfは自動設定ソフトウェアのソースコードスクリプト(configure)を生成するためのツールです。 configureスクリプトはautoconfとは無関係に実行でき、実行中にユーザーの介入を必要としません。

設定ファイルを生成するには、autoconfにあなたが使っているマクロを見つける方法を教えなければなりません。方法はあなたのaclocal.m4を生成するためにaclocalプログラムを使うことです。

aclocalは、configure.inファイルの内容に基づいてaclocal.m4ファイルを自動的に生成します。 aclocalのように定義されたPerlスクリプトである:'のaclocal - configure.ac&'を走査してaclocal.m4作成します;。

autoconfはconfigure.inファイルからconfigureを作成します。このファイルにはソフトウェアをコンパイルするのに必要な様々なパラメータがリストされています。

autoconfはaclocal.m4を処理してconfigureスクリプトを生成するためにGNU m4マクロプロセッサを必要とします。

m4はマクロプロセッサです。入力を出力にコピーしてマクロを展開します。マクロはインラインでもユーザー定義でもかまいません。マクロ展開に加えて、同様に組み込みm4の関数ファイルを参照するため、コマンド、整数演算、テキスト操作、循環を行います。 M4は、コンパイラのフロントエンドとしても、単独のマクロプロセッサとしても使用できます。

4、新しいMakefile.am

新しいMakefile.amファイル、コマンド:

$ vi Makefile.am

内容は次のとおりです。

AUTOMAKE_OPTIONS = foreign

Copyright © Windowsの知識 All Rights Reserved