linux下*.so库没有入口点?那他的运作原理是?跪求大神指导!!

linux下*.so库没有入口点?那他的运作原理是?跪求大神指导!!,第1张

linux下的so文件动态库文件,也叫共享库,是不能直接运行的;里面都是一些公用的函数定义,被其它应用程序调用。

例如:

现有两个文件:test.c、so_test.h;test.c里面定义了一个公共函数str_cpy()

我们将这两个文件编译成一个动态库:libtest.so。

命令:

$ gcc test.c -fPIC -shared -o libtest.so

有个程序源文件 main.c, 想调用str_cpy()函数.

编译时需要将main.c与动态库 libtest.so 链接生成执行文件main:

命令:$ gcc main.c -L. -ltest -o main

so文件不可以直接运行的,so文件是动态函数库文件,函数库文件(包括.a文件和.so文件)只能用来被调用运行,不能直接运行的,so文件就相当于Windows下的dll文件,dll文件就是不能直接运行的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8440202.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存