linux ar命令の使用説明と実例解説
arコマンドは、ライブラリを作成したり、変更したりして、ライブラリから単一のモジュールを提案することができます。ライブラリは別のファイルで、特定の構造に従って組織された他のファイル(このライブラリファイルと呼ばれるmember)が含まれています。元のファイルの内容、モード、タイムスタンプ、所有者、グループなどの属性はライブラリファイルに保存されます。
arは多くのファイルを集めて、単一の準備ファイルになります。準備ファイルには、すべてのメンバーファイルが元の属性と権限を持っています。
用途の説明
スタティックライブラリを作成します。aファイルです。C/C++を使ってプログラムを開発する時によく使いますが、単独でコマンドラインにarコマンドを使うことはめったにありません。Linuxのライブラリファイル、スタティックライブラリ、ダイナミックライブラリ、およびどのように作成し、使用するかに関する知識については、本論文の後の関連資料【3】『Linuxスタティックライブラリとダイナミックライブラリに関する分析』を参照してください。
通常のパラメータ
フォーマット:ar rcs libxxx.a×1.o×2.o
パラメータr:ライブラリにモジュールを挿入(置換)します。挿入されたモジュール名が既にライブラリに存在する場合、同じ名前のモジュールが置換されます。いくつかのモジュールの中にモジュールが存在しない場合、arはエラーメッセージを表示し、他の同名モジュールを置換しません。デフォルトでは、新しいメンバーがライブラリの最後に追加され、追加の位置を変更するために他のオプションを使用することができます。1)
パラメータc:ライブラリを作成します。ライブラリが存在するかどうかを問わず、作成されます。
パラメータs:ターゲットファイルインデックスを作成します。これは大きなライブラリを作成するときに時間を早めることができます。補足:索引を作成する必要がない場合は、大文字Sパラメータに変更できます。もし。aファイルにはインデックスが欠けています。rarrlibコマンドで追加できます。)
フォーマット:ar t libxxx.a
ライブラリファイルにどのようなターゲットファイルがありますか?名前だけが表示されます。
フォーマット:ar tv libxxx.a
ライブラリファイルにはどのようなターゲットファイルがありますか?ファイル名、時間、サイズなどの詳細が表示されます。
フォーマット:nm-s libxxx.a
ライブラリファイルの索引表を表示します。
フォーマット:ralib libxxx.a
ライブラリファイルの索引表を作成します。
使用例
例1はshellスクリプトで使用されます。
Bashコード
Makefileコード
第一歩:ソースファイルを編集し、test.h test.cman.c。ここで、mail.cファイルにはmain関数が含まれています。プログラムの入り口として。test.cにはmain関数で使用する関数が含まれています。
vitest.h test.cman.c
ステップ2:test.cをターゲットファイルにコンパイルします。
gcc-c test.
test.cに間違いがなければ、test.oというターゲットファイルが得られます。
ステップ3:はい。oファイルからスタティックライブラリを作成します。
ar rcs libtest.a test.o
ステップ4:ライブラリをプログラムで使用します。
gcc-o main.cn-L.-ltest
静的なコンパイルですので、生成された実行ファイルは独立して作成できます。aファイルが動作します。
ステップ5:実行します。
./main
例四ダイナミックライブラリを作成して使用する
第一歩:ソースファイルを編集し、test.h test.cman.c。ここで、mail.cファイルにはmain関数が含まれています。プログラムの入り口として。test.cにはmain関数で使用する関数が含まれています。
vitest.h test.cman.c
ステップ2:test.cをターゲットファイルにコンパイルします。
gcc-c test.
前の2ステップはスタティックライブラリの作成と一致しています。
ステップ3:はい。oファイル作成ダイナミックライブラリファイル。
gcc-shared-fPIC-o libtest.so test.o
ステップ4:ダイナミックライブラリをプログラムで使用します。
gcc-o main.cn-L.-ltest
スタティックライブラリとダイナミックライブラリが同名の場合、gccコマンドは優先的にダイナミックライブラリを使用します。
ステップ5:実行します。
LD_リブラアルPATH=./main
例5スタティックライブラリのファイルを表示する
arは多くのファイルを集めて、単一の準備ファイルになります。準備ファイルには、すべてのメンバーファイルが元の属性と権限を持っています。
用途の説明
スタティックライブラリを作成します。aファイルです。C/C++を使ってプログラムを開発する時によく使いますが、単独でコマンドラインにarコマンドを使うことはめったにありません。Linuxのライブラリファイル、スタティックライブラリ、ダイナミックライブラリ、およびどのように作成し、使用するかに関する知識については、本論文の後の関連資料【3】『Linuxスタティックライブラリとダイナミックライブラリに関する分析』を参照してください。
通常のパラメータ
フォーマット:ar rcs libxxx.a×1.o×2.o
パラメータr:ライブラリにモジュールを挿入(置換)します。挿入されたモジュール名が既にライブラリに存在する場合、同じ名前のモジュールが置換されます。いくつかのモジュールの中にモジュールが存在しない場合、arはエラーメッセージを表示し、他の同名モジュールを置換しません。デフォルトでは、新しいメンバーがライブラリの最後に追加され、追加の位置を変更するために他のオプションを使用することができます。1)
パラメータc:ライブラリを作成します。ライブラリが存在するかどうかを問わず、作成されます。
パラメータs:ターゲットファイルインデックスを作成します。これは大きなライブラリを作成するときに時間を早めることができます。補足:索引を作成する必要がない場合は、大文字Sパラメータに変更できます。もし。aファイルにはインデックスが欠けています。rarrlibコマンドで追加できます。)
フォーマット:ar t libxxx.a
ライブラリファイルにどのようなターゲットファイルがありますか?名前だけが表示されます。
フォーマット:ar tv libxxx.a
ライブラリファイルにはどのようなターゲットファイルがありますか?ファイル名、時間、サイズなどの詳細が表示されます。
フォーマット:nm-s libxxx.a
ライブラリファイルの索引表を表示します。
フォーマット:ralib libxxx.a
ライブラリファイルの索引表を作成します。
使用例
例1はshellスクリプトで使用されます。
Bashコード
OS=`uname -r`
ar rcs libhycu.a.$OS *.o
例2はmakefileで使用される。Makefileコード
$(BIN1): $(BIN1_OBJS)
ar rcs $@ $^
例3スタティックライブラリを作成して使用する第一歩:ソースファイルを編集し、test.h test.cman.c。ここで、mail.cファイルにはmain関数が含まれています。プログラムの入り口として。test.cにはmain関数で使用する関数が含まれています。
vitest.h test.cman.c
ステップ2:test.cをターゲットファイルにコンパイルします。
gcc-c test.
test.cに間違いがなければ、test.oというターゲットファイルが得られます。
ステップ3:はい。oファイルからスタティックライブラリを作成します。
ar rcs libtest.a test.o
ステップ4:ライブラリをプログラムで使用します。
gcc-o main.cn-L.-ltest
静的なコンパイルですので、生成された実行ファイルは独立して作成できます。aファイルが動作します。
ステップ5:実行します。
./main
例四ダイナミックライブラリを作成して使用する
第一歩:ソースファイルを編集し、test.h test.cman.c。ここで、mail.cファイルにはmain関数が含まれています。プログラムの入り口として。test.cにはmain関数で使用する関数が含まれています。
vitest.h test.cman.c
ステップ2:test.cをターゲットファイルにコンパイルします。
gcc-c test.
前の2ステップはスタティックライブラリの作成と一致しています。
ステップ3:はい。oファイル作成ダイナミックライブラリファイル。
gcc-shared-fPIC-o libtest.so test.o
ステップ4:ダイナミックライブラリをプログラムで使用します。
gcc-o main.cn-L.-ltest
スタティックライブラリとダイナミックライブラリが同名の場合、gccコマンドは優先的にダイナミックライブラリを使用します。
ステップ5:実行します。
LD_リブラアルPATH=./main
例5スタティックライブラリのファイルを表示する
[root@node56 lib]# ar -t libhycu.a
base64.c.o
binbuf.c.o
cache.c.o
chunk.c.o
codec_a.c.o
…
xort.c.o
[root@node56 lib]#
[root@node56 lib]# ar -tv libhycu.a
rw-r--r-- 0/0 7220 Jul 29 19:18 2011 base64.c.o
rw-r--r-- 0/0 2752 Jul 29 19:18 2011 binbuf.c.o
rw-r--r-- 0/0 19768 Jul 29 19:18 2011 cache.c.o
…
rw-r--r-- 0/0 4580 Jul 29 19:18 2011 xort.c.o
[root@node56 lib]#
[root@node56 lib]# nm -s libhycu.a | less
Archive index:
Base64Enc in base64.c.o
GetBase64Value in base64.c.o
Base64Dec in base64.c.o
encode64 in base64.c.o
decode64 in base64.c.o
check64 in base64.c.o
test64 in base64.c.o
…
chunk_alloc in chunk.c.o
[root@node56 lib]#
以上は小编が皆さんに绍介したlinux ar命令の使用説明と実例解説です。皆さんのために役に立つことを望んでいます。ここでも私たちのサイトを応援してくれてありがとうございます。