码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • gcc 动态库的编译和使用


    1.制作出来的库,如何给用户使用?

    1. 头文件 *.h
    2. 制作出来的库 *.so

    2.动态库的命名规则(三部分)

    lib + 自定义库的名字 + .so

    3.制作动态库的步骤

    1. 1 将.c文件生成.o
    2. [语法] gcc .c文件(原材料) -c -fpic(fPIC)
    3. gcc *.c [-I ./include] [-c] [-fpic(fPIC)]
    4. 2 使用gcc -shared,将.o文件打包,生成libXXX.so
    5. gcc [-shared *.o] [-o libXXX.so]

    4.动态库的使用

    1. 生成可执行文件
    2. gcc main.c -I ./include/ -L ./lib/ -lmycalc -o app
    3. -L 指定静态库的路径
    4. -lXXX XXX指定静态库的名字

    5. 为什么程序编译完成了之后,运行时确找不到so库呢

    使用ldd命令查看,运行时所需要链接的so库

    6. 如果找不到就需要配置so库路径

    1)export LD_LIBRARY_PATH=自定义动态库的路径
    (只能起到临时作用,关闭终端后失效)
    LD_LIBRARY_PATH : 指定查找共享库(动态链接库)时除了默认路径之外的其他路径,该路径在默认路径之前查找

    2)将上述命令写入home目录下的.bashrc文件中,保存后重启终端生效(永久)

    3)直接将动态库拷贝到user/lib的系统目录下(强烈不推荐!!)

    4)将libmy.so所在绝对路径追加入到/etc/ld.so.conf文件,使用sudo ldconfig -v 更新
     

    7、实测

    1. 1、gcc -fPIC -c *.c -I ../include
    2. 2、gcc -shared *.o -o libMyCalc.so -I ../include
    3. 3、mv libMyCalc.so ../lib
    4. 4、gcc main.c -o app -L lib -l MyCalc -I include
    5. 5、ldd app
    6. 6、export LD_LIBRARY_PATH=./lib

  • 相关阅读:
    Nacos集群搭建(图文教程)
    php tp5微信小程序发送模板消息【复制皆可用】
    深入学习JS:作用域与执行上下文
    redis的单线程模型
    Android Process管理(进程管理) 详解
    第10章 自编码器
    axios返回几种数据格式? 其中Blob返回时的size是什么意思?
    2019-04《信息资源管理 02378》真卷(独家文字版),圈定章节考点+统计真题分布
    工程物料管理信息化建设(十二)——关于工程物料管理系统最后的思考
    突破编程_C++_高级教程(正则表达式编程实例)
  • 原文地址:https://blog.csdn.net/technologyleader/article/details/125507521
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号