Linux「.a」ファイルの作成と実行

Linux A Fairuno Zuo Chengto Shi Xing



Linux オペレーティング システムでファイルを操作するには、開発者がファイル、コード、プログラム、スクリプトなどを効率的に作成および実行できるようにするさまざまなコマンドとテクニックを使用する必要があります。 Linux 環境では、拡張子「.a」を持つファイルは静的ライブラリとして重要な意味を持ちます。これらのライブラリはソフトウェア開発において重要な役割を果たし、開発者が複数のプログラムで共通の機能を効率的に管理し、効果的に共有できるようにします。

Linux 環境で効果的なソフトウェア開発を行うには、「.a」ファイルの作成方法と実行方法を理解することが重要です。これは、Linux の「.a」ファイルをインストールして構成するための包括的なハウツーです。 Linux の「.a」ファイルとは何なのか、その目的、構造、および作成方法と実行方法を調べてみましょう。

Linux の「.a」ファイルとは何ですか?

Linux の「.a」ファイルは、コンパイルされたコードとデータのコンテナーとして機能するアーカイブ ファイルです。これは、アプリケーションの基本部分となる、コンパイル時に呼び出しコードにリンクされるコードを含む静的ライブラリとして一般に知られています。これらの Linux の「.a」ファイルは、実行時にリンクが行われる Linux の「.so」ダイナミック ライブラリ ファイルとは完全に対照的に、コンパイル済みのアプリケーションへの基本的な貢献を提供します。







開発者が 3 つの異なるプログラムを実装するシナリオを想像してみましょう。これらのプログラム間に共有機能が存在することを知っているプログラマは、「.a」ファイルとして提供されるこれらの共通機能をカプセル化するライブラリを作成します。この時点で知っておくべき重要なニュースは、Linux の「.a」ファイルが、他の開発者がプロ​​ジェクトで使用できる再利用可能なコードとデータのコレクションになるということです。



前提条件:

Linux で「.a」ファイルを作成して実行する方法を学ぶ前に、いくつかの基本的なことを理解しておくことが重要です。 Linux で機能を実行する前に、確認する必要がある前提条件がいくつかあります。それらは次のとおりです。



  • Ubuntu 20.04 または最新バージョン
  • コマンドラインまたはターミナルウィンドウへのアクセス
  • さまざまなファイルやディレクトリに対するユーザー アカウント、特に sudo 権限

Linux の「.a」ファイルを作成して実行するにはどうすればよいですか?

Linux の「.a」ファイルを作成して実行するには、作成、コンパイル、実行という一連の手順が必要です。これらのアクションを実行するにはさまざまな方法が使用できます。それぞれについて個別に説明します。始めましょう。





次の例を実行するには、GCC コンパイラが必要です。コンパイラは、Linux の「.a」ファイルを作成して実行するためのすべてのコマンドを実行するために使用されます。



以下に、さまざまなコマンドとテクニックを使用して説明する手順を示します。

ステップ 1: C ソース ファイルをコンパイルする

次のコマンドを使用して、GCC コンパイラを使用して C のソース ファイルを作成し、C ソース ファイル (.c) をオブジェクト ファイル (.o) にコンパイルすることから作業を開始します。

$ gcc -壁 -c * .c

「-Wall」フラグはすべての警告を有効にし、「-c」フラグは、この時点ではリンクではなくコンパイルのみを行うよう GCC に指示します。

ステップ 2: ライブラリ アーカイブを作成する

次のステップでは、ライブラリ ファイルを作成します。 「ar」コマンドは、オブジェクト ファイルから静的ライブラリ アーカイブ (.a) を作成します。したがって、次のコマンドを使用します。

$ -cvq libfile.a * .O

このコマンドは、Linux オペレーティング システムの「ar」(アーカイブ) コマンドを使用して、拡張子「.o」を持つさまざまなオブジェクト ファイルを結合することにより、「libfile.a」という名前の静的アーカイブ ファイルを作成します。このコマンドには、「c」、「v」、「q」という 3 つの点に注意してください。コンポーネントを分解して、このコマンドのコンテキストにおける各フラグと引数の目的を理解しましょう。

ar: Linux システムでアーカイブ コマンドを実行します。 「ar」コマンドの基本的な機能は、アーカイブを作成、変更、およびアーカイブから抽出することです。

-c: このフラグは、新しいアーカイブがまだ作成されていない場合、またはまだ存在しない場合に、新しいアーカイブを作成するように指示します。指定された名前のアーカイブ ファイルが存在する場合、「-c」フラグにより​​ファイルが再作成され、以前のコンテンツが置き換えられます。

-v: 詳細フラグは、アーカイブ プロセスに関する詳細情報を表示します。どのファイルがアーカイブに追加されるかについてのフィードバックが提供されます。

-q: 「q」は「クイック追加」を表します。これは、重複シンボルや時間のかかる操作をチェックせずに、指定されたファイルをアーカイブに即座に追加するように「ar」フラグに要求します。

libfile.a: ファイルの名前は、作成または変更されるコマンドに必要です。ここでは、ファイル名を「libfile」とし、静的ライブラリのアーカイブ ファイルであることを示す「.a」拡張子を付けます。

*.o: コマンドの末尾の「*」は、選択したディレクトリ内の各ファイルを表し、オブジェクト ファイルを参照する「.o」拡張子が付いています。オブジェクト ファイルはソース コードのコンパイルの結果であり、最終的な実行可能ファイルにまだリンクされていないマシン コードが含まれています。

ステップ 3: ライブラリのコンテンツを表示する

ライブラリ アーカイブを作成したので、「ar –t」コマンドを使用してそれを確認できます。 「ar –t」コマンドは、ライブラリに存在するすべてのコンテンツをリストします。

$ -t libfile.a

「ar -t libfile.a」コマンドは、Linux オペレーティング システムで「ar」コマンドを使用して、「libfile.a」という名前の静的ライブラリ アーカイブ ファイル内に含まれるすべてのオブジェクト ファイルを一覧表示します。各フラグとその機能を分析してみましょう。

ar: 前述したように、これは Linux システムのアーカイブ コマンドです。

-t: 「-t」フラグは、アーカイブの目次を表示するために使用され、「libfile.a」内に保存されているオブジェクト ファイルの名前が表示されます。

libfile.a: データを読み取るには、アーカイブ ファイルの名前を知る必要があります。

ステップ 4: 別のプログラムでライブラリを使用する

次に、新しく開発された Linux の「.a」ファイルを別のプログラムで使用する方法を見てみましょう。ライブラリを作成したので、コンパイルコマンドにライブラリを追加するだけで、どこでも、どのプログラムでも使用できるようになりました。後続のコマンドを使用してこれを実行できます。これには、ライブラリの必要なヘッダーとリンクがすべて含まれています。

$ gcc -O MyProgramMain.c -L パス / / ライブラリは -lfile

このコマンドでは、「-L」はライブラリ パスを指定し、「-lfile」は「library.a」libfile にリンクし、「lib」プレフィックスと「.a」サフィックスを削除します。

ステップ 5: 「.a」Linux ファイルを実行する

最後に、「.a」ファイルを実行できます。ターミナルで次のスクリプトを実行すると、結果がすぐに表示されます。

$ / マイプログラムメイン

このコマンドは、ソース ファイルとリンクされた静的ライブラリの両方で提供される機能を利用して、ファイルを実行します。

結論

Linux で「.a」ファイルを作成して実行するには、ファイルの作成、コンパイル、リンクを実行するさまざまなコマンドをコンパイルする必要があります。これらの手順と各コマンドの動作機能を理解することで、開発者はコードを整理し、外部ライブラリを使用し、スケーラブルなプログラムを開発できるようになります。 nano や GCC などの基本的なコマンドを使用する必要がある場合でも、静的ライブラリを使用してより高度なテクニックを使用する場合でも、これらのスキルを習得することは、実用的な Linux ベースの開発に役立ちます。