基于动态库的C语言环境配置方法(配合shell使用更佳)

         背景:前几天接到一个需求:在Linux下基于openssl的SM2算法实现对SE芯片签名的验签,并制作Linux版验签工具。暂且不论SM2 Verify算法及其过程,要实现验签得有sign、pubkey、userid、msg等吧,这些data必须动态加载才能满足客户需求,最常见的方法是使用文件I/O的方式,读取参数,但是这样做,你不仅要使用文件I/O,还要解析参数,会增加代码的复杂性。所以,经过思考我使用如下方式:

         (1)将以上参数直接剥离,放到一个新建的config.c中,并在config.h中声明;

         (2)编写shell脚本config.sh,判断文件是否存在,存在就将其编译成动态库libconfig.so,并cp到/usr/lib/(以此为例);

note:有可能自己编译的库或者其他需要使用的库,在/usr/lib/下有同名的lib库。如笔者还需要链接libcrypto.so.1.1。

           若有同名库,则先备份,在cp;同理,在clean时要回复原有lib库。

          (3)在自己的源码中包含config.h头文件,并在编译时链接到libconfig.so即可。

note:ldd <编译后的可执行文件>  查看链接的库,及其位置,因为在shell中cp的目的地必须和其一致。

            以上,完毕。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值