linux下动态链接库使用与单步调试

//动态库调试时,可以在库函数中设置断点,使用n代表不进入库函数单步调试,使用s//表进入库函数单步调试

 

//注意:可以使用ldd libtest.so查看动态库的依赖情况

//在默认情况下,运行时程序只会去系统路径下如/usr/lib等目录下查找动态库,可以配置运//行库目录并运行ldconfig命令把新加的动态库加进动态库加载缓存区

//ldconfig是一个动态链接库管理命令,为了让动态链接库为系统所共享,还需运行动态链接库的//管理命令--ldconfigldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置 //文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创//建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为 /etc/ld.so.cache,此文件保存//已排好序的动态链接库名字列表.

//动态库代码如下,只能使用g++编译,不能使用gcc,不然动态加载时可能加载不到

//编译语句 g++ -shared -fpic -o libtest.so testso.cpp

#include <stdio.h>

extern "C"

int max()

 

{

         printf("zjszjszjs\n");

         return1;

 

}

 

 

 

//动态加载动态库代码如下,只能使用g++编译

//编译语句: g++ -o main -ltest loadsotest.cpp –ldl

 

#include <stdio.h>

#include <dlfcn.h>

typedef int (*CAC_FUNC)();

int main ()

{

         void*  handle =dlopen("libtest.so", RTLD_LAZY);

         if(!handle)

         {

                   printf("loaderor\n");

         }       

         CAC_FUNCmax= (CAC_FUNC)dlsym(handle, "max");   

         if(!max)

                   printf("loadmax error \n ");

         max();

         return0;

}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值