C头文件和动态链接错误

时间:2012-05-03 22:42:58

标签: c header-files dynamic-library

我创建了一个动态链接的库。我唯一的问题是我的主程序无法识别我的头文件。头文件与我的主程序位于一个单独的文件夹中。我尝试了#include "myheader.h"以及#include "/folder/dir/myheader.h"

这是我的.h由

组成的
    extern int afunction(int,int);
    extern int afunction(int,int);

到目前为止,此代码正常运行

    gcc -fPIC -c filename1.c
    gcc -fPIC -c filename2.c

    gcc -shared -o libMylib.so filename1.o filename2.o

然后我将lib复制到/usr/local/lib,然后再复制

    gcc main.c -L. -lMylib -o exeName -ldl

我得到了

    " myheader.h : no such file or directory.

这是我的目录结构:

directory1 ---------------- folder1(main program.c)

directory1 ---------------- folder2(myheader.h,以及pgm的函数)

向正确的方向推进会有所帮助,因为我已经编写了所有代码而且我刚刚进入最后阶段。

2 个答案:

答案 0 :(得分:3)

您需要gcc ... -I<some directory to myheader.h>。这将使编译器能够找到头文件。

答案 1 :(得分:1)

您可以将lib头文件与当前程序放在同一个文件夹中。

或者像@Ed Heal说..为include头文件夹添加-I<path>