次のチュートリアルに従って、静的ライブラリを作成しました。
http://tldp.org/HOWTO/Program-Library-HOWTO/static-libraries.html
http://www.adp-gmbh.ch/cpp/gcc/create_lib.html
http://www.cs.dartmouth.edu/~campbell/cs50/buildlib.html
ar
ツールを使用して C でスタティック ライブラリを生成しました。ライブラリは別のディレクトリにあります。ライブラリを適切に生成しており、それを使用して次のようにプログラムをコンパイルしています。
gcc -lpthreads main.c -o server -L thread-pool -lthreadpool
を含む現在のディレクトリの下のライブラリが呼び出さthread-pool
れますlibthreadpool.a
。
チュートリアルによると、次のように自分の.h
ファイルをmain.c
:に含める必要があります#include "threadpool.h"
。GCC がthreadpool.h
見つからないというエラーをスローしています。別のディレクトリにあるため、これは明らかです。
私が含めたときは as:#include threadpool/threadpool.h"
コンパイルされますが、実際には機能しません。まだ機能を認識していません。なぜこれが起こっているのかわかりません。.h
静的ライブラリをコンパイルするとき、実際にファイルやソースを実際に送信する必要はないと思いました。
ここでの問題は何ですか?どうすればこれを克服できますか?
編集:
.h ファイルが静的ライブラリと同じではないことはわかっています。私が上で述べたことが、私が両方の間で混乱しているように見える理由がわかりません.
とにかく、静的ライブラリを使用する場合、静的ライブラリで.h
プログラムをコンパイルするだけでなく、ファイルもソースに含める必要があるということですか?