2012-02-12 16 views
0

私は、以下の構造を持つ.h-filesと.c-fileに基づいて、Cライブラリを作成するプログラムを探しています(つまり、ファイルを1つのファイルにリンクしてコンパイルします:FECライブラリです: www.openfec.org)。私はUbuntuを使用しています。私は手動で各ファイルを指定せずにこれを実行したい。私はWAFを試しましたが、エラー 'エラー:root:エラー:モジュール名がcflagsではありません'というエラーが出ました。ここでヘッダファイルとソースファイルからCライブラリ(Ubuntu用)を作成するには?

は(の一部)の構造である:

fec 
lib_advanced 
ldpc_from_file 
    of_code_profile.h 
    of_ldpc_ff.h 
    ... 
lib_common 
    linear_binary_codes_utils 
     binary_matrix 
     it_decoding 
     ml_decoding  

    statistics 
    of_cb.h 
    of_debug.h 
    of_mem.c 
    of_mem.h 
    of_openfec_api.c 
    of_openfec_api.h 
    of_openfec_profile.h 
    of_types.h  

感謝!!

答えて

1

gccを使用して、Cファイルをオブジェクトファイルにコンパイルする必要があります。

次に、ar r、次にranlibを使用してオブジェクトを1つの.aライブラリファイルにパックする必要があります。

1

*nixシステム上のライブラリ(すべてのLinuxディストリビューションを含む)は標準ツールで作成されます。このツールは、a)Cコンパイラb)リンカb)arユーティリティc)ranlibユーティリティです。

GNU Cコンパイラ、リンカld、およびユーティリティarおよびranlibの99.9%は、gnuシステム(Linuxシステムの99.9%)上のbinutilsパッケージの一部です。

arranlibは、ARとRANLIBとアーカイブのインデックスを作成すると、アーカイブファイルlibsomething.aにすでにコンパイルされたオブジェクトファイル(* .oのファイルを)入れて、作成された静的ライブラリに使用されています。

リンカーは、位置独立コードを持つ動的ライブラリを作成するためにgccコンパイラ内で呼び出すことができます。すでにコンパイルされたファイルは特別な場所にアーカイブされます。このファイルの共有オブジェクトの拡張子は.soです。

スタティックライブラリは、スピードと自己封じ込めに使用され、最終実行可能ファイル内にすべての依存関係を含む大きな実行可能ファイルを生成します。多くの変更がある単一のライブラリであれば、それを更新するためにすべてを再コンパイルする必要があります。

ダイナミックライブラリは実行可能ファイルとは別にコンパイルおよびリンクされています。複数の実行可能ファイルによって同時に使用できます.1つのライブラリが更新されている場合は、単一のライブラリを再コンパイルするだけで済みます。

このツールの使用は普遍的で標準的な手順ですが、* nixシステムから* nixシステムまでのいくつかの詳細によって異なりますが、Linuxでは基本的に常にGCCとBinutilsパッケージを使用します。 make、cmake、autotoolsなどの形式で余分なビルドユーティリティが存在しますが、基本ツールは常に使用されます。

一般に、最も基本的なレベルでは、makeユーティリティによって解釈されるMakefileスクリプトを記述します。そして、それはより多くの情報については

を、ライブラリのいずれかまたは両方の種類を作るライブラリと実行可能ファイルをインストールし、それらをアンインストールし、クリーンアップなどができ、あなたのコマンドに応じて:

http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
http://www.dwheeler.com/program-library/Program-Library-HOWTO/

関連する問題