我创建了一个动态链接的库。我唯一的问题是我的主程序无法识别我的头文件。头文件与我的主程序位于一个单独的文件夹中。我尝试了#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的函数)
向正确的方向推进会有所帮助,因为我已经编写了所有代码而且我刚刚进入最后阶段。
答案 0 :(得分:3)
您需要gcc ... -I<some directory to myheader.h>
。这将使编译器能够找到头文件。
答案 1 :(得分:1)
您可以将lib头文件与当前程序放在同一个文件夹中。
或者像@Ed Heal说..为include头文件夹添加-I<path>
。