动态链接警告:creating a DT_TEXTREL in object
来源:互联网 发布:通用顶级域名有多少个 编辑:程序博客网 时间:2024/06/05 19:32
前一段时间将一个模块做成动态库的过程中,编译.so的时候有一个警告:creating a DT_TEXTREL in object。
但是明明makefile里面是有加fPIC的,不知为何还会生成DT_TEXTREL。
导致设备启动的时候加载.so文件的时候,弹出了“Can't modify /lib/libispfront.so's text section. Use GCC option -fPIC for shared objects, please.”
对着makefile瞅了半天,也没发现哪里有问题。
问题实际上出在这个.so文件所链接的一个静态库上,这个静态库编译的时候是没加fPIC的,所以生成的代码不是地址无关的,
导致的最终结果是生成的.so中一半地址无关代码,一半地址相关需要重定位的。
正常来说这种.so应该也是能正常加载的,但是不知为何,可能链接器做了什么我不了解的限制,只加载fPIC的.so,
或者是链接器链接的时候有什么选项没有选对?
但是,可悲的是这个静态库的源代码随着部门划分划走了,所以拿不到源代码,也就无法重新编译。
最终想了另外一个办法饶了过去,将这个静态库从.so中拎了出来,放在可执行程序中,然后就只把能编译的代码编成.so。
问题暂时是绕过去了,但是这个降低耦合的目的没有达到,起码是事倍功半。。。
0 0
- 动态链接警告:creating a DT_TEXTREL in object
- bin/ld.bfd: warning: creating a DT_TEXTREL in a shared object解决办法
- Creating a Security Descriptor for a New Object in C++
- Creating a Generic Object Factory
- js:Creating a new object
- Creating a Plug-In Framework
- Creating a Plug-In Framework
- Creating MTS ActiveX Object in Java
- Process of creating an object in Java
- (转载)攻略:创建和使用动态链接库Walkthrough: Creating and Using a Static Library
- Creating a User in a Domain and Creating Organizational Units
- Creating a Simple Win32 Service in C++
- Creating a Ruby Weblog in 10 Minutes
- Creating a immovable windows' form in c#
- Creating a Simple Win32 Service in C++
- Creating a MySQL dump in CSV format
- Creating a File Manager in Adobe Air
- Creating a Base Window Class in WPF
- 堆和栈的区别(转过无数次的文章)
- 广告联盟、营销中常见的词汇
- Servlet入门一
- MyEclipse快捷键大全
- HBase 的 HA (高可用性)
- 动态链接警告:creating a DT_TEXTREL in object
- mysql遇到:ERROR 2002 (HY000)
- AE入门概念之Dataset,FeatureDataset,GeoDataset,工作空间Workspace……
- log4j配置详解(2)
- 验证集群软件的完整性
- C# 获取Geodatabase个人数据库中要素类
- Java Abstract Classes
- svn 命令行查看history及比较不同版本
- spring教程(spring学习资料)列表(持续更新)