静态库使用:
生成app文件--./app运行
动态库的制作和使用:
制作:生成绿色可执行文件
把动态库拷贝到lib目录下
指定库的目录库的名称
报错 :找不到动态库的文件
动态库加载的原理:
动态库的依赖关系
最后一个是动态载入器;
解决:在动态加载器加载的路径中添加动态库的绝对路径
1.配置LD_LIBRARY_PATH :先$获取之前的值,再拼接
再 查看就有路径了
但是,重新打开一个终端,环境变量需要重新配置,临时;永久配置:系统级别配置、/用户级别配置;
用户级别的配置:
home目录下的bashrc
保存退出并使文件生效;
系统级别:
使生效;.和source同效
修改文件列表:
但是不能直接修改只能间接修改
路径加入这个文件并更新;
最后一种方式:把动态库文件放入/lib/或者/user/lib/目录下 --》不建议使用,包含系统自带的库文件,可能会替代;
GDB
vim中显示行号
在编译时没有带-g : --可执行文件中没有加入源代码信息
源代码文件被改名也找不到
在GDB中查看list;
编译cpp文件使用g++;
查看其它文件; l 文件名:行号
查看对应文件后面需要加上行号;显示时候以行号为中心进行显示;
查看和设置一次查看多少行;
断点
info :i break:b
delete :d/del
Enable :y/n yes/no
条件断点:
退出gdb程序断点就没有了,再次进入需要重新设置断点;
使用start运行gdb程序,程序从第一行开始;main()函数
程序停到下一个断点,但没有设置断点直接运行结束;
程序没有断点使用run运行调试程序,直接运行结束;
程序停在第一个断点处,断点处还没有执行
c继续到下一个断点;
next: 直接一步一步执行不会进入函数体--输出调用结果;
使用s 会进入函数体;
跳出函数体
设置自动变量;自动打印不需要每次都print;
设置变量的值;