大牛们哪位神医高手在都市 so du懂怎么查看so文件里的接口函数

工程里很多函数只是有声明,找不到实现的代码。因为那些实现代码已经编译成库所以看不见,我所看见的全是一堆头文件.
、、文件都是下的程序函数库,即编译好的可以供其他程序使用的代码和数据。
优点:程序模块化,容易重新编译,方便升级。
分类:静态函数库(对应文件)、共享函数库(对应文件,类似于的文件)、动态加载函数库(对应文件,相当于里的文件)
静态函数库
特点:实际上是简单的普通目标文件的集合,在程序执行前就加入到目标程序中。
优点:可以用以前某些程序兼容;描述简单;允许程序员把程序起来而不用重新编译代码,节省了重新编译代码的时间(该优势目前已不明显);开发者可以对源代码保密;理论上使用格式的静态库函数生成的代码可以比使用共享或动态函数库的程序运行速度快(大概)
生成:使用程序(的缩写)。是把目标代码和加入到这个函数库文件中(如果不存在则创建)
使用:用生成可执行代码时,使用参数指定要加入的库函数。也可以用命令的和参数。
共享函数库
共享函数库在可执行程序启动的时候加载,所有程序重新运行时都可自动加载共享函数库中的函数。文件感觉很复杂,光是命名规则就已经看得我很晕了整理一下,共享库需要:、,另外编译的时候名字也有说法。依次解释下:
:必须的格式:函数库名版本号信息(但是记住,非常底层的库函数都不是以开头命名的)。例子:
:顾名思义是真正的名字啦,有主版本号和发行版本号。但是没找到实例&&
编译器编译的时候需要的函数库的名字就是不包含版本号信息的,例如上面的例子把最后的去掉就可以了。
位置:共享函数库文件必须放在特定目录,对于开放源码来说,标准建议所有的函数库文件都放在目录下,而且建议命令、可执行程序都放在目录下。不过这个只是习惯啦,可以改变,具体的位置信息可以看里面的配置信息。当然,也可以修改这个文件,加入自己的一些特殊的路径要求。
创建:在网上找到了方式和环境下两种创建方式。
首先创建文件,这个文件将加入通过
参数命令加入到共享函数库里面,标准格式:(说实话这个标准格式看起来好复杂,我找了个实例,但是好像和那个标准格式稍有不同:)
在环境下生成文件:
选择新建工程,建立一个工程
在工程类型选项里选择 ,然后填入工程名字点击完成即可。
编写程序,然后编译就会在或者里生成一个文件,如果不要的起头标记点击菜单的选项,然后在弹出的界面的右边点击页面,将选项的内容清空即可。
如果是程序,注意在接口函数的前面加上标记,在头文件加上如下标记:
头文件主体
如果不加以上标记,经过编译后,里的函数名并非你编写程序时设定的函数名,在开发环境左侧的工程文件列表中点开项里的可以看到文件里的函数名都是在你设定的函数名后面加了一个标记,比如你用的设定的函数名称是 而里的函数名则为或者其他的名称。
安装:拷贝共享库文件到指定的标准的目录,然后运行。如果没有权限这样做,那么就只好通过修改环境变量来实现这些函数库的使用了。方法不再说了,很复杂。
查看:可以通过运行来看某个程序使用的共享函数库。例如。查看文件使用命令,如。(注意,nm对于静态的函数库和共享的函数库都起作用)
关于覆盖:如果想用自己的函数覆盖某个库中的一些函数,同时保留该库中其他的函数的话,可以在中加入要替换的库(结尾的文件),这些的库函数将有优先加载的权利。
关于更新:每次新增加动态加载的函数库、删除某个函数库或者修改某个函数库的路径时,都要重新运行来更新
阅读(...) 评论()大牛们哪位高手懂怎么查看so文件里的接口函数(2) - Linux/Unix当前位置:& &&&大牛们哪位高手懂怎么查看so文件里的接口函数大牛们哪位高手懂怎么查看so文件里的接口函数(2)&&网友分享于:&&浏览:283次 共&2&页:
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有}

我要回帖

更多关于 哪位高手解读这副门联 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信