如上所述,可以用"-rpath-link","-rpath",或者文件"/etc/ld.so.conf"来指定。
-lxx
xx是你的.so文件名
其实使用方法和你使用数学库函数是一样的,源代码中添加
#include <math.h>,编译的时候,加上-lm参数。
注:linux下的.so文件为共享库,相当于windows下的dll文件。
扩展资料:linux下编写调用so文件实例
.so是Linux(Unix)下的动态链接库. 和.dll类似.
比如:
文件有: a.c, b.c, c.c
gcc -c a.c
gcc -c b.c
gcc -c c.c
gcc -shared libXXX.so a.o b.o c.o
要使用的话也很简单. 比如编译d.c, 使用到libXXX.so中的函数, libXXX.so地址是MYPATH
gcc d.c -o d -LMYPATH -lXXX
注意不是-llibXXX
test.c文件和一个test.h,这两个文件要生成libsotest.so文件。然后我还有一个testso.c文件,在这个文件里面调用libsotest.so中的函数。
编写的过程中,首先是编译so文件,我没有编写makefile文件,而是参考的2里面说的直接写的gcc命令。
因为so文件里面没有main函数,所以是不可执行的,所以编译的时候要加上-c,只生成目标文件。
绝对路径;在Linux中,绝对路径是从/(也被称为根目录)开始的,比如/usr、/etc/X11。如果一个路径是从/开始的,它一定是绝对路径,这样就好理解了;[root@localhost ~]# pwd 注:判断用户当前所处的位置,也就是说他到底位于哪?/root 注:用户当前位于/root;[root@localhost ~]# cd /usr/share/doc/ 注:我们以绝对路径方式进入/usr/share/doc目录下;[root@localhost doc]# pwd 注:判断用户当前所处的位置/usr/share/doc 注:用户位于/usr/share/doc,看来已经达到我们的目的了;相对路径;路径是以 . 或 .. 开始的,.表示用户当前 *** 作所处的位置,而.. 表示上级目录;在路径中,.表示用户当前所处的目录,而..上级目录,要把.和..当做目录来看。[root@localhost ~]# pwd 注:通过pwd来判断当前用户所在的位置;/root 注:得出目录处于/root目录中;[root@localhost ~]# cd . 注:我们进入.[root@localhost ~]# pwd 注:判断当前用户所处的位置;/root 注:得出在/root 目录中 ;[root@localhost ~]# cd .. 注:我们切入/root的上级目录[root@localhost /]# pwd 注:判断当前用户所处的位置。/ 注:用户当前位于/(根目录)中;关于这个linux系统的学习,我一直看刘遄老师的书籍《linux就该这么学》,感兴趣的也可以去看看啊。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)