warning: shared library text segment is not shareable

error: treating warnings as errors

近期在调试一个Gsensor, 代码是从android4.2上直接移植过来的。但却一直编译只是, 纳闷了。。。

baidu不行

google 又訪问不了,真是操蛋

可是终究还是找到了点实用的信息,说是编译器的选项要加上 --no-fatal-warnings

可无论怎么加, 加到那儿都变成了g++的选项,可g++不认得它。郁闷 了一会

看了看链接器的链接选项中看到了例如以下两个选项

--warn-shared-textrel       Warn if text segment is not shareable

--no-warn-shared-textrel    Do not warn if text segment is not shareable (default)

由此猜測一空是默认加入了 --warn-shared-textrel

所以打一此处直接去掉就OK了, 详细例如以下:

diff --git a/android/build/core/combo/TARGET_linux-arm.mk b/android/build/core/combo/TARGET_linux-arm.mk

index 5ff30fa..accc3ff 100755

--- a/android/build/core/combo/TARGET_linux-arm.mk

+++ b/android/build/core/combo/TARGET_linux-arm.mk

@@ -132,7 +132,6 @@ TARGET_GLOBAL_LDFLAGS += \

-Wl,-z,noexecstack \

-Wl,-z,relro \

-Wl,-z,now \

-   -Wl,--warn-shared-textrel \

-Wl,--fatal-warnings \

-Wl,--icf=safe \

$(arch_variant_ldflags)

时间: 2024-08-26 10:32:07

warning: shared library text segment is not shareable的相关文章

Linux Programe/Dynamic Shared Library Entry/Exit Point && Glibc Entry Point/Function

目录 1. 引言 2. C/C++运行库 3. 静态Glibc && 可执行文件 入口/终止函数 4. 动态Glibc && 可执行文件 入口/终止函数 5. 静态Glibc && 共享库 入口/终止函数 6. 动态Glibc && 共享库 入口/终止函数 1. 引言 0x1: glibc Any Unix-like operating system needs a C library: the library which defines t

【已解决】运行Eclipse出错:Failed toload the JNI shared library

[问题] 运行Android的ADT,即Eclipse出错: Failed to load the JNIshared library C:\Program Files(x86)\Java\jre6\bin\client\jvm.dll 其中背景是: 1.之前已经可以正常运行的,即已经正常安装了JRE6的. 2.后来删除掉了JRE6了. 3.刚刚又去重新安装了JRE6,结果还是错误依旧. 4.并且已经确定了:C:\ProgramFiles (x86)\Java\jre6\bin\client\j

启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误的解决方法!

启动 Eclipse 弹出"Failed to load the JNI shared library jvm.dll"错误的解决方法 http://blog.csdn.net/zyz511919766/article/details/7442633   原因1:给定目录下jvm.dll不存在. 对策:(1)重新安装jre或者jdk并配置好环境变量.(2)copy一个jvm.dll放在该目录下. 原因2:eclipse的版本与jre或者jdk版本不一致 对策:要么两者都安装64位的,要

dynamic-link library shared library of functions and resources

https://msdn.microsoft.com/en-us/library/1ez7dh12.aspx A dynamic-link library (DLL) is an executable file that acts as a shared library of functions and resources. Dynamic linking enables an executable to call functions or use resources stored in a s

Qt学习之路(60): 创建shared library

前段时间说了Qt一些类库的使用,今天来换一下口味,来看一下程序设计的问题.今天来说的是关于共享库 shared library. 如果你打开一些 Windows 应用程序的目录,你会发现有很多程序的 exe 文件都很小,大约几百K 的样子,并且目录中不仅仅只有一个 exe 文件,还包含着一大堆 dll 文件.这些 dll 其实就是一些共享库,所谓共享库,其实就是一些动态链接库,能够由程序在运行时进行动态加载的库.既然说是共享,那就是说,这些库不仅仅自己的程序可以使用,并且其他程序也可以使用,例如

eclipse-failed to load the JNI shared library

很久没有用eclipse,刚才打开,提示:failed to load the jni shared library.这个问题一般是eclipse和JDK位数不一样. 解决方案: 1,在cmd中输入[java -version] 在这里,画线部分是Client VM表示是32位的jdk.若是64-bit Server,表示64位jdk. 2,打开eclipse安装目录 记事本方式打开eclipse.ini.我用sublime打开的.如下图.划红线处,是win32.x86表示32位.win32.x

启动Eclipse 弹出“Failed to load the JNI shared library”错误的解决方法

原因1:eclipse的版本与jre或者jdk版本不一致 对策:要么两者都安装64位的,要么都安两个是32位一个是64位. 原因2:给定目录下jvm.dll不存在 对策:(1)重新安装jre或者jdk并配置好环境变量.(2)copy一个jvm.dll放在该目录下. 原因1的概率更大一些,原因2不太可能发生. 启动Eclipse 弹出"Failed to load the JNI shared library"错误的解决方法,布布扣,bubuko.com

Eclipse运行时提示“Failed to load the JNI shared library /Java/jre6/bin/client/jvm.dll”的一个解决方案

出现这个问题的一个原因是eclipse需要的32位jdk,你的环境变量中配的是64位jdk 于是有人建议,重装个32位的jdk,把环境变量换成32位的jdk,但如果你的其它程序需要64位jdk的话,这肯定不是一个好办法 还有一种方法是在 eclipse根目录下有个eclipse.ini文件,添加个 -vm参数 -vm C:/Java32/jdk1.7.0_45/bin/javaw.exe      //这是我的32位jdk 注意位置 -startup plugins/org.eclipse.eq

Eclipse启动 报错[Failed to load the JNI shared library jvm.dll

准备要做java服务器,在安装开发环境时,启动Eclipse报错[Failed to load the JNI shared library jvm.dll] 研究了下,造成错误的原因是由于eclipse与jdk的不一致造成的. 我的开发环境是64位windows8 Pro,安装了64位jdk1.6,eclipse却粗物的安装了32位的版本,由于64位和32位匹配不一致,造成了以上错误的发生. 又尝试了一下,32位jdk+64位eclipse也会发生同样的问题. 好了,解决方法很简单,jdk和e