GCC共享库已链接但未找到库中的头文件

时间:2014-10-19 11:24:26

标签: c gcc shared-libraries

所以我在将共享库与GCC结合使用时遇到了一些麻烦。 我对此很陌生,所以这就是我来这里问的原因。我无法找到关于堆栈溢出的问题,这对我有帮助(也许我忽略了一个)。但首先是关于我的设置以及我想要完成的事情
所以我有两个相互开发的库。一个名为liblinkedlist,其中包含C中的链表实现,另一个名为libgraph,包含C中的图形实现。两者都放在以下文件夹结构中:

<root>
+---graph_lib(folder)
    +---build(folder)
    +---src(folder)
    +---makefile(file)
+---linkedlist_lib
    +---build(folder)
    +---src(folder)
    +---makefile(file)

每个src文件夹包含源文件(对于liblinkedlist和graph.h为linkedlist.h和.c,对于libgraph为.c) 在每个构建文件夹中,存储从头文件创建的.o和.so文件
现在的问题是我想在我的图库中使用/ linkedlist_lib / build /中的liblinkedlist.so。在编译库时,一切似乎都很顺利。但是当我尝试将它与包含头文件(在链表列表库中)结合使用时,我收到无法找到它的消息。

我的编译命令如下:
对于liblinkedlist:

gcc -fpic -c src/linkedlist.c -o build/linkedlist.o
gcc -shared -o build/liblinkedlist.so build/linkedlist.o

对于使用liblinkedlist的libgraph:

gcc -fpic -c src/libgraph.c -o build/libgraph.o
gcc -fpic -c src/graph.c -o build/graph.o
gcc -L../linkedlist_lib/build/ -o build/libgraph build/libgraph.o build/graph.o -llinkedlist

这些是我在使用头文件时得到的命令和错误:

gcc -fpic -c src/libgraph.c -o build/libgraph.o
In file included from src/libgraph.c:2:0:
src/graph.h:4:24: fatal error: linkedlist.h: File or folder does not exist
#include "linkedlist.h"
                    ^
compilation terminated.
make: *** [build/libgraph.o] Fout 1

关于如何解决这个问题的任何想法,我在这里做错了吗? 提前谢谢你

0 个答案:

没有答案