依赖-linux ldd 自己编译的.so 提示PIC =>no found

问题描述

linux ldd 自己编译的.so 提示PIC =>no found

问题是这样的,我编译一个.so动态链接库的时候,依赖一些.o目标文件,提示我编译.o的时候要用-fPIC选项去编译目标文件,这个地方我觉得很奇怪,之前没有这样用过。最终我写了一个简单的demo去调用我自己写的.so的时候,提示依赖的.o(目标文件)中的几个函数没有定义,让我很费解, 我怀疑是没有连接进我最终的.so中,于是我ldd查看一下我最终的.so依赖的文件哪些不错在,ldd之后得到结果 , 提示PIC=>not found ,上网查了查,几乎没有这方面的资料(可能是我的能力不够,没有了解这是什么),所以想在这里请教一下各位,给点意见。

解决方案

你编译器支持fPIC吗,fPIC只是用来进行代码地址重置时相关,编译so动态库,要加-share标志
然后你ldd缺少的是什么,demo调用so是动态加载

时间: 2024-11-03 22:11:19

依赖-linux ldd 自己编译的.so 提示PIC =>no found的相关文章

Linux编译内核时提示“ Too many open files”的解决方法

Linux编译内核时提示" Too many open files"的解决方法如下: 这是因为file-max默认值(8096)太小.要解决这个问题,可以root身份执行下列命令(或将它们加入/etc/rcS.d/*下的init脚本): # echo "65536" > /proc/sys/ 最后进入解压后的目录,运行安装命令. # cd vmware-linux-tools# ./install.pl

《Linux设备驱动开发详解 A》一一3.4 Linux内核的编译及加载

3.4 Linux内核的编译及加载 3.4.1 Linux内核的编译 Linux驱动开发者需要牢固地掌握Linux内核的编译方法以为嵌入式系统构建可运行的Linux操作系统映像.在编译内核时,需要配置内核,可以使用下面命令中的一个: make conf?ig(基于文本的最为传统的配置界面,不推荐使用) make menuconf?ig(基于文本菜单的配置界面) make xconf?ig(要求QT被安装) make gconf?ig(要求GTK+被安装) 在配置Linux内核所使用的make c

Ubuntu/Debian/Linux Mint 中编译安装 wxWidgets 框架

wxWidgets是一个C++程序开发框架/库, 支持Windows.Mac.Linux中使用相同的代码跨平台开发.它主要用C++写成,但也可以与其他语言绑定比如Python.Perl.Ruby.本教程中我将向你展示如何在基于Debian的linux中如Ubuntu和Linux Mint中编译wxwidgets 3.0+. 从源码编译wxWidgets并不困难,仅仅需要几分钟.库可以按不同的方式来编译,比如静态或者动态库. 1. 下载 wxWidgets 第一步你需要从wxwidgets.org

arm 交互编译-linux 下arm编译问题,no such file or diractory

问题描述 linux 下arm编译问题,no such file or diractory 在寻你机上编译通过后,吧执行文件导入arm-linux中,总是提示-bash: no such file or diractory坑爹啊,虚拟机arm-linux-gnueabi-gcc-4.6.3,ab板子是A80板子,SDK自带的arm-linux-gnueabi-gcc-4.6.3不能用,资料上说是他们用的是arm-linux-gnueabi-gcc-4.6.3.还是可能是版本不兼容的问题嘛?还是其

linux 6下编译安装配置LAMP平台

LAMP(Linux- Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl.PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富.轻量.快速开发等特点,微软的.NET架构相比,LAMP具有通用.跨平台.高性能.低价格的优势,因此LAMP无论是性能.质量还是价格都是企业搭建网站

android-linux下编译Android,提示找不到包

问题描述 linux下编译Android,提示找不到包 我这个项目在eclipse中编译都能够编译成功,但是将项目放到Linux下编译的时候,就出现找不到android-support-v4.jar这个包

如何在 Ubuntu/Debian/Linux Mint 中编译和安装 wxWidgets

wxWidgets是一个程序开发框架/库, 允许你在Windows.Mac.Linux中使用相同的代码跨平台开发.它主要用C++写成,但也可以与其他语言绑定比如Python.Perl.Ruby. 本教程中我将向你展示如何在基于Debian的linux中如Ubuntu和Linux Mint中编译wxwidgets 3.0+. 从源码编译wxWidgets并不困难,仅仅需要几分钟.库可以按不同的方式来编译,比如静态或者动态库. 1. 下载 wxWidgets 第一步你需要从wxwidgets.org

keil-KIEL程序编译不成功提示目标没有创建?

问题描述 KIEL程序编译不成功提示目标没有创建? 请教各位大神!!为什么编译程序出现目标没有创建这个问题?我检查过了程序没有任何问题,而且keil破解了! 解决方案 是不是你创建项目的时候,单片机型号选择错了???

xml-求大神帮忙看看,新定义的style编译时一直提示找不到符号是怎么回事?

问题描述 求大神帮忙看看,新定义的style编译时一直提示找不到符号是怎么回事? 在frameworks/base/core/res/res/values下的styles中新定义了一个style,并在frameworks/base/core/java/android/webkit/JsDialogHelper.java中使用,但是编译的时候一直报错,找不到符号,是为什么?求各位大神帮忙看看-- 解决方案 代码如下:很简单的代码-- styles文件中:<br> <item name=&q