5.19-5.20学习笔记

1.Linux查看 .so动态链接库

方法一  ——  nm命令:

终端查看:nm -D 文件名.so

写入当前终端所在位置某个文件中(可以自动创建文件):nm -D 文件名.so | tee 文件名.text

nm命令的输出包含三个部分:

1) 符号值。默认显示十六进制,也可以指定;

2 )符号类型。小写表示是本地符号,大写表示全局符号(external);

3 )符号名称。

方法二  ——  readelf -d :

终端查看: readelf -d 文件名.so

可以查看共享库的依赖库(NEEDED)和搜索名(SONAME)。

2.可以直接引用导入包内容的情况与globals().update():

1)使用from .. import ..,实现对内容的具体导入

2)使用globals().update()实现全局化:.如下:

文件结构
onedir:
|            one.py
|            __init__.py
two.py
one.py:

*********代码*************
def funv():
    print("funv")

class Func:
    def __init__(self):
        self.x = 1
    def acquire(self):
        print("Func.acquire")
two.py
********代码**********
from onedir import one

attrs = one.__dict__.items()#__dict__展现module的所有属性;本行代码的意思是将one全局属性都付给attrs(??是不是所有全局属性还有待考证)
globals().update(attrs)#将attrs增加到当前的全局变量,也即是说将one的属性添加为two的全局变量,这样two就可以直接使用one中的属性

在two.py中直接运行:


two.py
********代码**********
from onedir import one

attrs = one.__dict__.items()
globals().update(attrs)

two.funv()#funv()#原本是one的函数,one的属性变为two的全局变量以后,two可以直接使用funv()了,不需要 使用one.funv()形式

********控制台输出结果**********
funv

3.lib是库,有动态库和静态库的区分

动态链接库是插件的一种方式,目的在于实现系统的扩展性

 4.Linux与Win的相对路径

Win:

.文件所在的当前目录

..文件所在当前目录的上一级目录

./a 当前目录下的文件a

/a 盘符下的文件a

 Linux

./当前目录

../当前目录的上一级

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值