NDK:libm 静态链接

2024-03-27

我在尝试使用最新的 android-9 x86 平台编译源代码时遇到问题。

主要问题:为什么是静态库libm.a和动态的libm.so是不同的?

问题是我尝试编译:

/path/to/android-ndk-r8/toolchains/x86-4.4.3/prebuilt/linux-x86/bin/i686-android-linux-gcc --sysroot=/path/to/android-ndk-r8/platforms /android-9/arch-x86 -I/path/to/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/include -I/path/to/android-ndk-r8/sources/cxx-stl /gnu-libstdc++/libs/x86/include -L/path/to/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/lib -L/path/to/android-ndk-r8/platforms/android -9/arch-x86/usr/lib-static/path/to/gcc_4_4_6_release/gcc/testsuite/gcc.dg/complex-5.c -std=c99 -O -ffloat-store -o ./complex-5.exe -lm

但我有未定义的参考:

/tmp/cc78CsCp.o:功能中main': complex-5.c:(.text+0x1a2): undefined reference tofeclearexcept'complex-5.c:(.text+0x1b3): 对“fetestexcept”collect2 的未定义引用:ld 返回 1 退出 地位

密码:/path/to/android-ndk-r8/platforms/android-9/arch-x86/usr/lib

ls libm* libm.a libm.so

它存在,但是如果我们用 nm 来查找费克利尔除外,它不存在于静态库中。

好的,只需尝试删除 -static 标志即可。

/path/to/android-ndk-r8/toolchains/x86-4.4.3/prebuilt/linux-x86/bin/i686-android-linux-gcc --sysroot=/path/to/android-ndk-r8/platforms /android-9/arch-x86 -I/path/to/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/include -I/path/to/android-ndk-r8/sources/cxx-stl /gnu-libstdc++/libs/x86/include -L/path/to/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/lib -L/path/to/android-ndk-r8/platforms/android -9/arch-x86/usr/lib /path/to/gcc_4_4_6_release/gcc/testsuite/gcc.dg/complex-5.c -std=c99 -O -ffloat-store -o ./complex-5.exe -流明

好的。问题是:为什么它们不同?我需要静态链接,我不想强​​制使用动态链接-Wl,-B动态-lm。顺便说一下:常规的 linux libm.a 和 libm.so 包含类似的函数列表。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NDK:libm 静态链接 的相关文章

  • 如何传递对象的数组列表来填充每个部分标题文本及其内容?

    我在用粘性网格标题 https github com TonicArtos StickyGridHeaders对于带有部分的 GridView 这个库正在使用R array countries填充GridView使用提供的数据并从传递的字符
  • UnsatisfiedLinkError:dlopen 失败:无法找到引用的符号“__aeabi_memcpy4”

    我刚刚从 NDK 12 x 更新到 13 x 现在遇到以下崩溃 Caused by java lang UnsatisfiedLinkError dlopen failed cannot locate symbol aeabi memcpy
  • 使用 Android SDK 随机访问文件 > 2GB

    谁能告诉我如何使用 android SDK 随机访问超过 2GB 的文件 我试图寻找 gt 2147483647 的位置并得到异常 值对于定义的数据类型来说太大 这很奇怪 因为查找命令的参数是 long 类型 详细内容请参见代码示例 Ran
  • 可以制作一个不调用Intent的Android通知吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 减少 OpenGL ES 1.1 中纹理的内存使用

    我在 OpenGL ES 中的场景需要几个大分辨率纹理 但它们是灰度的 因为我仅将它们用于蒙版 我需要减少内存使用 我尝试使用 Bitmap Config ALPHA 8 和 RGB 565 加载这些纹理 ALPHA 8 似乎实际上增加了内
  • 如何在两个图像之间淡出和淡出?

    好的 这里有一点帮助 所以我的启动屏幕中加载了两个图像 第一个图像打开 启动启动画面 然后第二个图像打开 一旦第二个图像关闭 主活动就会开始 现在我的问题是如何使我的第一张图像淡出 然后淡入第二张图像 哦 是的 而且没有交叉淡入淡出 只是完
  • Android handler.postDelayed 正在停止我的媒体播放器以顺利运行歌曲?

    您好 我是 Android 编程新手 我在构建媒体播放器应用程序时需要很少的帮助 在该应用程序中我使用搜索栏来更新进度 如下所示 Handler handler new Handler paly setOnClickListener new
  • 按 HOME 按钮不会从配置活动返回小部件 ID

    Error appWidgetId EXTRA APPWIDGET ID was not returned from the widget configuration activity public class WidgetConfigur
  • ActionBar 上的自定义主页按钮

    我正在使用 ActionBar Sherlock 库 所以 要更改默认的主页按钮 我这样做了 这不起作用 所以 我也添加了这个
  • 推送通知不会弹出带有入门套件的react-native-firebase

    我已经克隆了React Native Firebase 启动器 https github com invertase react native firebase starter并进行了初始设置 然后根据文档重命名项目 然后添加google
  • Android 模拟器出现错误:冷启动:快照不存在

    我在使用 Android 模拟器 7 8 天后就遇到了问题 起初它根本没有运行 现在重新安装模拟器解决了这个问题 但又产生了新的问题 每当我运行模拟器时 都会花费很长时间 大约 5 6 分钟 然后显示错误 Cold Boot Snapsho
  • 如何在ubuntu服务器上安装android SDK

    我在 ubuntu 服务器中有一个 React Native 项目 我想构建一个用于生产的 Android 应用程序 为此 我首先必须生成 Gradle Wrapper 文件 因此我在中运行此命令android目录 gradle wrapp
  • 使用正则表达式解析HLS m3u8文件

    我想解析 HLS master m3u8 文件并从中获取带宽 分辨率和文件名 目前我正在使用字符串解析来搜索字符串中的某些模式并执行子字符串来获取值 示例文件 EXTM3U EXT X STREAM INF PROGRAM ID 1 BAN
  • 为什么无法在 android 中包含 iostream?

    已安装 android ndk r7 并尝试编译 cpp 文件 include
  • 以从左到右的模式启动 Activity

    我面临一个问题 我有三项活动 我需要向左滑动开始新活动 Activity1 Activity2 Activity3 means 当我单击按钮时 新活动不应像 Android 行为那样直接显示 我希望新活动来自右侧并显示在当前屏幕上 任何人都
  • 如何获取屏幕触摸的 x,y 坐标?

    当我的应用程序运行时 每当有人触摸屏幕时 是否有一种简单的方法来获取 x y 坐标 只是想将它们存储在一些整数中 覆盖onTouchEvent MotionEvent event 然后打电话event getX and event getY
  • Android 每个 Activity 中的通用进度条

    我已经修改了解决方案 我可以获得进度条 但进度条永远不会隐藏 这是创建具有相对布局的进度条的类 public class ProgressBarHandler private ProgressBar mProgressBar private
  • public open fun navigateUp() 的参数太多

    我在 Kotlin 中创建了一个新的 Android 项目 我还使用向导创建了一个新的导航抽屉活动 一如既往 没有任何东西是开箱即用的 以下行显示编译错误 val navController findNavController R id n
  • 将图像上传到服务器 PHP Android

    我现在迷失了尝试将图像上传到我的服务器 我可以在 Android 设备上拍照并获取我的位置 我有以下代码将文件上传到服务器 public Boolean postFunction File image String tag postFunc
  • Android:自动重新连接 BLE 设备

    我的目标是让 Android 设备重新连接到之前连接过的 BLE 设备无需用户干预与经典 BT 配对设备的操作方式相同 甚至可以通过电源循环工作 BTLE 设备的想法之一是节省服务 绑定和启用状态 以便重新连接非常快并且在外设上消耗很少的功

随机推荐

  • 通配符导入,然后隐藏特定隐式?

    给定以下具有 2 个隐式的对象 scala gt object Foo implicit def stringToInt x String 555 implicit def stringToBoolean x String true war
  • System.Net.WebException:错误:在单声道 Android 应用程序中调用 WCF 服务抛出异常时 NameResolutionFailure

    我正在开发 Mono Android 移动应用程序 我在应用程序中调用 WCF 服务 我使用项目菜单的 gt Add WebRefernce 选项添加了 WCF 服务 我的问题是当我在设备上运行调用 wcf 服务时遇到异常 例外 为您的应用
  • Android“vspace”内存?

    我想更多地了解 vspace 内存到底是什么 在为 Android 游戏加载库时 经常会出现虚拟空间内存不足的情况 因为我们倾向于在应用程序启动时占用尽可能多的内存 我一直无法找到任何有关它的信息 这是我收到的错误消息 11 11 16 0
  • 使 ruby​​ gems 响应终端命令

    我对红宝石和宝石制作非常陌生 我制作了一个简单的 gem 它根据输入抓取一些信息 但是 要使用我的 gem 我需要进入解释器 irb 并需要我的 gem 然后使用一些参数调用该方法 假设宝石被称为foo 假设该方法被调用print webs
  • 错误 StatusLogger Log4j2 找不到日志记录实现

    我正在尝试实施log4j 2但它不断抛出以下错误 gt ERROR StatusLogger Log4j2 could not find a logging implementation gt Please add log4j core t
  • 浮动操作按钮导致错误和应用程序崩溃

    使用浮动操作按钮时 我的 Android 应用程序崩溃并抛出错误 当我删除它时 我的应用程序成功运行 但如果可以的话 我宁愿使用浮动操作按钮 这是我完整的错误日志 java lang RuntimeException Unable to s
  • Python - 如何检查文件是否被另一个应用程序使用?

    我想打开一个由另一个应用程序定期写入的文件 该应用程序无法修改 因此 我只想在知道该文件未被其他应用程序写入时才打开该文件 有没有Pythonic的方法来做到这一点 否则 我如何在 Unix 和 Windows 中实现这一点 edit 我会
  • 从头开始为 JRE 创建 Docker 映像

    我正在尝试使用 JRE 创建映像而不使用任何操作系统 我尝试了这个 Dockerfile 但不起作用 FROM openjdk 11 0 1 jdk oraclelinux7 as JDK RUN jlink no header files
  • 如何为动态搜索字符串创建索引

    我有一点数据库 仅用于学术目的 我最多有对象表 我在 Power Designer 中创建了一个实体关系模型 ERM 并且该程序默认为每个表的序列 ID 创建索引 我想知道如何使用索引 就像在查询中那样 说我会 想要通过 id 查找产品 但
  • 64 位环境中引用的大小

    在浏览 SO 上另一个问题的答复时遇到了这个 引用与变量获取 https stackoverflow com questions 3744635 c is it a good idea to always return references
  • iOS 10 中的 AVSpeechSynthesizer 错误

    我目前正在使用创建一个文本转语音应用程序AVSpeechSynthesizer 在 iOS 9 中运行正常 但在 iOS 10 中出现以下错误 无法获取属性 LocalURL 错误域 MobileAssetError Code 1 无法复制
  • Escape(\) 字符背后的魔力是什么

    C C 编译器如何操作源代码中的转义字符 编译器语法是如何编写来处理该字符的 编译器遇到该字符后会做什么 大多数编译器分为几个部分 编译器前端称为词法分析器 http en wikipedia org wiki Lexical analyz
  • 在 jdk 11 中运行 Doclet 的 com.sun.tools.javadoc.Main.execute 的替代方案是什么?

    我在 Apache netbeans 10 上使用 JDK 11 The main该方法自 java 9 起已被弃用 并标记为删除 如果没有 选择 https docs oracle com en java javase 11 docs a
  • 如何对 SQL 存储过程的 col 结果求和[重复]

    这个问题在这里已经有答案了 我有一个存储过程 其结果如下 Governors AUTO 07313570121 1 3 69 2 01 2 01 1 68 83 58 Governors AUTO 07319354850 1 2 79 1
  • 如何根据风格更改 Flutter 应用程序名称?

    我有 Flutter 应用程序的开发和生产风格 问题是开发和生产应用程序的标签和启动器是相同的 因此看不到差异 实际上不能同时在设备上安装两者 根据风格更改 Flutter 应用程序名称的简单方法是什么 我知道可以通过修改 AndroidM
  • 需要使用油脂猴脚本点击出价按钮

    我有点卡住了 我正在尝试创建一个油脂猴脚本 该脚本将自动单击拍卖网站上出现的弹出窗口 我有 Xpat 但我对 GM 的经验太丰富 无法让它发挥作用 这是我从 fire finder for firebug 获得的元素检查线
  • Sublime Text 中的边界敏感 Cmd+D

    我在 OSX 上使用 Sublime Text 3 Using cmd D I want to select the next instance of es but not if it s part of another word 鉴于此代
  • 如何从 Google App Engine for Java 调用 Google App 脚本

    我有一个谷歌应用程序脚本 我想从 Google App Engine for Java 调用它 有人可以指导如何调用这样的脚本吗 我试着用谷歌搜索这个 但只找到了很多关于如何进行相反操作的信息 请指教 6个月前我也有同样的问题 我可以使用脚
  • 缩短本地 jekyll 服务器的页面生成时间

    跑步时jekyll server 整个站点被重建 在足够大的站点上 这需要非常长的时间 即使与 auto标志 这应该会阻止整个站点重新生成 但完成时间相当长 对我来说 10 多秒 据报道对某些人来说需要几分钟 这在编辑和预览单个页面时很不方
  • NDK:libm 静态链接

    我在尝试使用最新的 android 9 x86 平台编译源代码时遇到问题 主要问题 为什么是静态库libm a和动态的libm so是不同的 问题是我尝试编译 path to android ndk r8 toolchains x86 4