• 締切済み

ソフト移植(ヘッダーファイルとライブラリの違い)

hファイルとLibファイルの違いがよくわかりません libでリンクしてhファイルを指定してCで命令を与える そこで問題なんですが 1.libファイルは作成できるんですか? 2.それともhファイルを書き換えるのが主流ですか? 3.学校でWEBカメラ移植の実験をしています #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> #include <sys/ioctl.h> #include <stdlib.h> #include <linux/videodev.h> そこで上のライブラリ(.h file)をそのまま使って別のマイコンに移植しようという実験をしているのですがgcc(video4Linux)のライブラリ(.h file)抽出の仕方がよくわかりません すでにカメラのプログラムはあり、後はそのマイコンにライブラリをリンクすれば完成できるという設計構造なのですが、ソフト開発移植にあたって、この開発構造の概念であっているでしょうか? ライブラリを抽出する上で何か適切なアドバイスとかないでしょうか? *ちなみにマイコンのコンパイラーは自作です お願いします

みんなの回答

  • necomimi3
  • ベストアンサー率40% (124/307)
回答No.1

質問内容が高度なので判る範囲で(^w^ >hファイルとLibファイルの違いがよくわかりません hファイルはコンパイルに必要な定義ファイルです。 Libファイルはlinkに必要なコンパイル済みの集合体で動かすハードウエアに依存するオブジェクトファイルです。 通常Libファイルは、動かすハードウエア毎に提供されてるものか、 ソースが提供されてるはずです。 videodev.hがあるのであればvideodev.libまたはvideodev.objが存在すると思います。

Wtraveler
質問者

補足

こういう経験ありませんか? 例えば画像処理系のソースコードをコンパイラしますよね そしたら.hファイルにエラーが出ます そこで.hファイルを探す 見つかったらコンパイラ成功 けど.hファイルがなかったら? 自分で作ってしまえば下のコードを弄らなくても済みますよね それにほしいlibファイルがあればコンパイラーに追加してそのまま使えばいいし...例えばgccのmmapとか数学の関数等 つまりコンパイラーに限界があってそのコンパイラーの制限を取ってしまえば自分の好きなコンパイラーが作れ開発が楽になる オープンソースのライブラリーや.hファイルが作れてしまえば 開発がグーンと楽になりどのハード(マイコン)でも応用が利くようになる そういうスキルを身につけたいのですが、そんな方法が有るのでしょうか?簡単な.hファイルは作れるんですけど学校ではCのビギナーしか教えてもらえなくて>< 自分でネットの資料を探しながらその疑問を解決しています

関連するQ&A