我按照以下教程创建了一个静态库。
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
中,如下所示。GCC 抛出一个错误,说没有找到。这很明显,因为它位于不同的目录中。main.c
#include "threadpool.h"
threadpool.h
当我包含时:#include threadpool/threadpool.h"
它可以编译但实际上不起作用。它仍然无法识别这些功能。我不确定为什么会这样。我认为在编译静态库时,实际上您不需要实际发送.h
文件或任何源。
这里有什么问题?我该如何克服呢?
编辑:
我知道 .h 文件与静态库不同。我不知道为什么我上面所说的似乎让我在两者之间感到困惑。
无论如何,当使用静态库时,是否意味着我们也需要该.h
文件并将其包含到源代码中,而不仅仅是使用静态库编译程序?