当前位置: 首页 > ops >正文

通俗解释Linux 动态库-fPIC的作用

🧱 什么是动态库?

你可以把“动态库”想象成一个工具箱,程序运行的时候需要用到它里面的工具(函数),但不是一开始就把它塞进程序里,而是等到需要的时候才去“借”。

比如:你写了一个程序叫 app,它要调用一个函数 add(),这个函数放在一个叫 libmath.so 的动态库里。程序运行时才会去加载这个 .so 文件。


🎯 那么 -fPIC 是什么?

-fPIC 是 GCC 编译器的一个选项,意思是:

“请生成与位置无关的代码(Position Independent Code)。”

换句话说:

“这段代码将来可以被加载到内存中的任何地方,都能正常运行。”


🚧 不加 -fPIC 会怎样?

如果你编译动态库时不加 -fPIC

http://www.xdnf.cn/news/12510.html

相关文章:

  • Dynamics 365 Finance + Power Automate 自动化凭证审核
  • 通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
  • Python 自定义函数详解及递归函数等案例
  • 协议哨兵:场景化协议风险的ai工具
  • Tableau for mac 驱动
  • 《探秘局域网广播:网络世界的 “大喇叭”》
  • 前端 Electron 桌面应用学习笔记
  • electron-vite串口通信
  • 队列的概念及实现
  • LeetCode 高频 SQL 50 题(基础版)之 【子查询】· 上
  • (LeetCode 每日一题)3170. 删除星号以后字典序最小的字符串(贪心+栈)
  • Vue3学习(4)- computed的使用
  • 【学习笔记】深度学习-参数初始化
  • Android 蓝牙通信
  • 从0开始学习R语言--Day19--连续变量的相关性检验
  • c++ 单例模式
  • Android和硬件通信
  • 二.单例模式‌
  • Shell: 解决文件复制后权限变化问题
  • 两阶段提交
  • 7.2.1_顺序查找
  • Linux 初始化与服务管理全解析:rc.d、systemctl与service对比
  • 我用AI降低AI率:一次“用魔法打败魔法”的实验
  • 深入理解 Python `asyncio` 的子进程协议(Subprocess Protocol)
  • 离散傅里叶级数(DFS)的用途
  • Qt生成日志与以及捕获崩溃文件(mingw64位,winDbg)————附带详细解说
  • DevSecOps新理念
  • 【信息系统项目管理师-选择真题】2025上半年(第二批)综合知识答案和详解(回忆版)
  • flex布局 flex:1里面的盒子内容过多溢出处理
  • FISCO-BCOS 联盟链 caliper测试示例非常完善