好きなおでんの具材ドラフト会議しましょう

お世話になります。現在、C言語でプログラムを作成してますが、
自作ライブラリの作成方法について教えてください。
現在は、1つのfileにmain()と関数を両方記述してます。
(少々、見にくく解消したいのですが良い本がみつかりません)
知りたいことは、
1)ライブラリのコンパイルから作成方法
2)headerの書き方
3)それらの保存場所、他、環境設定
※入門書は、かなり読みましたがずぶの素人です。
 もし良い本があれば紹介ください。
環境は、
BCC(WINDOWS)
GCC(linux)
を使ってます。
宜しくお願いします。

A 回答 (4件)

他の人との共同作業ですね。

分かりました。

1)ライブラリのコンパイルから作成方法
gccとbccではライブラリが違いますので兼用できません。
どちらかに固定することをお勧めします。
gccの場合はオブジェクトファイルを作って、それをarコマンドでライブラリ化します。毎度コンパイルとライブラリ作成コマンドは面倒なのでmakeを記述するほうが良いでしょう。
下記ページにある静的ライブラリを作ります。
http://www.linux.or.jp/JF/JFdocs/Program-Library …
http://www.linux.or.jp/JF/JFdocs/Program-Library …

bccはやったことないですが、こんな感じみたいです。
http://d.hatena.ne.jp/idegman/20081226/p2

2)headerの書き方
そのライブラリに含まれる関数を呼び出すのに必要なものを記述します。
・extern宣言の関数プロトタイプ
・#defineされた定数
・enumの定数。
・構造体
などです。

3)それらの保存場所、他、環境設定
コンパイル時のオプションで場所を指定できるので何処でも良いですが、標準関数と同じ場所に置くのは感心できません。専用のフォルダを用意してください。
配布方法はライブラリファイルとヘッダを渡すことになります。ソースコードはライブラリ内のデバッグしてもらわない限り不要です。
    • good
    • 0
この回答へのお礼

細かい説明までつけて頂きありがとうございます。
非常に助かりました。

お礼日時:2009/07/03 16:37

ソースコードの管理の面では、SVNやCVSを使うのが一般的です。

変更履歴を管理し、多人数での作業の煩わしさを減少してくれます。
    • good
    • 0

確認しますが、ライブラリファイルは何のために作るか理解されてますか?


・複数のプログラムで同じ機能を使い回したいとき。
・作った関数の機能を他の人に提供したいとき。
・あまりにもプログラムの一部の関数群が大きなコードなのでコンパイル単位を分けてコンパイル時間を節約したいとき。サウンド関数群とかまとまった単位でライブラリ化する。

などがライブラリを作る理由です。

質問内容を見る限りは、単にmainと関数群のファイルを分割したいだけに見えます。どうなんでしょうか?

この回答への補足

お世話になります。
現在、評価のための係数を計算するための関数を数本作って
ます。具体的には、計算したデータ(float)を精度違いの固定小数点に
変換するものです。現在は、私1人で環境を作って評価しょうとしてますが、次のフェーズでは
2,3人で評価検討に使うので、そうするのが必要かなと考えます。
あとの目的としては、この機会に”Cプログラミングのスタイル”及び管理を改めたいと考えている次第です。
仕事の担当上、テスト用データを作成するためにCでプログラミングすることもありますが、ほとんど"a.out"で、その場限りのプログラミングです。
これを見直したいと考えてます。
以上、連絡致します。

補足日時:2009/07/02 14:37
    • good
    • 0

1つ確認しておきたいのですが, 「複数のソースからなるプログラム」を作ったことはありますか? もしあるとしたら, どのように操作し

ましたか?

この回答への補足

お世話になります。
あまり、やりませんが、
関数をextern宣言して、compileしてlinkする
という操作をすることは知ってます。

補足日時:2009/07/02 14:34
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報