-fpic 与-fPIC的区别
-fpic 与-fPIC的区别
前言
在编译动态库的时候,我们应该需要使用-fpic 或-fPIC参数。如下所示:
然后,使用gcc或g++ 命令生成动态库
pic 与PIC的异同
相同点:都是为了在动态库中生成位置无关的代码。通过全局偏移表(GOT)访问所有常量地址。程序启动时动态加载程序解析GOT条目。
不同点:如果链接的可执行文件的GOT大小超过计算机特定的最大大小,则会从链接器收到错误消息,指示-fpic不起作用;在这种情况下,请使用-fPIC重新编译。GOT大小根据操作系统的不同而大小不一样,SPARC上为8k,在AArch64上为28k,在m68k和RS / 6000上为32k。x86没有此限制。
总结
为了兼容各个系统,在生成位置无关的代码的时候,应该使用-fPIC参数。
参考资料
[1].https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options
-fpic 与-fPIC的区别相关推荐
- gcc -fpic 和 -fPIC 参数问题
gcc -fpic 和 -fPIC 参数问题 目的:生成位置无关的代码. 位置无关代码(Position-Independent Code),则产生的代码中,没有绝对地址,全部使用相对地址,故而代码可 ...
- gcc动态库fPIC和fpic编译选项差异介绍
作者以前并没有特别留意fPIC和fpic之间的差别,最近在aarch64服务器上编译遇到的一个问题,让自己好好的查询了一些资料,或许平常的开发人员并不容易遇到它,但愿对有缘的读者有一定帮助. 1)出动 ...
- -fpic与-fPIC
Object文件 我们在Linux开发过程中经常会遇到Object file这个名词,你可以称之为对象文件.常见的对象文件有三种: 可重定位的对象文件(Relocatable file) 这是由汇编器 ...
- linux 内核fpic,浅谈-fPIC与-fpic
-fPIC 作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code), 则产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意 ...
- Linux: fPIC与 pie 区别
参考链接: https://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/Code-Gen-Options.html#Code-Gen-Options https://st ...
- C++学习(三九二)-fPIC, -fpic, -fpie, -fPIE
-fPIC与-fpic都是在编译时加入的选项,用于生成位置无关的代码(Position-Independent-Code),可以使得动态库可以被多个程序共享.这两个选项都是可以使代码在加载到内存时使用 ...
- 【Build】关于-fPIC, -fpic, -fpie, -fPIE的一点理解
最近在编译动态库文件,用到-fPIC编译选项.查了下GNU的手册: -fpic Generate position-independent code (PIC) suitable for use in ...
- 关于-fPIC, -fpic, -fpie, -fPIE的一点理解
最近在编译动态库文件,用到-fPIC编译选项.查了下GNU的手册: -fpic Generate position-independent code (PIC) suitable for use in ...
- 关于-fPIC, -fPIE的一点理解
查了下GNU的手册 -fpic Generate position-independent code (PIC) suitable for use in a shared library, if su ...
最新文章
- Linux下的vim文本替换,Linux下文本的vim文本替换
- 机器人学习--F1TENTH弗吉尼亚大学无人驾驶课程
- 集群的可扩展性及其分布式体系结构(2)-下
- (转)淘淘商城系列——使用JsonView来格式化json字符串
- fastnest怎么一键排版_FastNEST数控编程组合排版与技巧探讨
- Swift 编程语言
- github fork自己的库,如何同步源库的更新
- (转)简体繁体转换代码(Big5-GB | GBK简体-GBK繁体)
- 简单的图形识别python
- 用Sympy计算高次方程的判别式
- ANN to SNN
- Nginx反向代理汇总
- win10 锁屏界面自动更换壁纸的办法,亲测有效
- 多基站wifi混合定位
- node-gyp rebuild 报错处理
- origin ‘http://localhost:8080‘ has been blocked by CORS policy: Request header field platform is not
- 计算机录音机应用程序在哪,win10电脑自带录音在哪里打开
- background-clip属性详解
- buffon针的概率算法
- EtherCAT运动控制卡小线段前瞻的连续插补运动
热门文章
- 2012年系统架构师考试题详解
- Android实现沉浸式状态栏(透明状态栏)(QQ和简书样式)
- 一文讲清推荐算法原理
- python找到字符中空格所在的位置_python查找空格和中文
- linux下usb2.0更快,Linux平台PK:USB2.0与3.0闪存盘谁强?
- ffmpeg_parse_options命令行解析
- 服务器意外断电系统崩溃,Docker 实例不能正常启动 可能诱因:服务器意外断电 操作系统故障 运维操作有误...
- 最简单的细胞比计算机还复杂,人类的科技文明是否真的就是宇宙中的唯一,外星人有可能不存在...
- 对账系统,这下彻底搞清楚了!
- 计算机平面设计单招的分数线,单招分数线一般多少 多少分以下适合单招