控制 Android NDK 中的编译器标志?

2024-04-11

我知道我可以使用LOCAL_CFLAGS将参数传递给编译器。然而,ndk-build正在我的后面插入选项LOCAL_CFLAGS,因此它们优先。例如我想指定-Ofast, but ndk-build adds -O2在我自己的标志之后,并且由于只有最后一个选项具有任何效果,因此我无法使用设置的某些优化标志来测试我的代码。

有什么办法可以强迫我LOCAL_CFLAGS作为构建命令的最后一个选项,或者禁用ndk-build使用某些标志?

例如,我的LOCAL_CFLAGS被设定为:

-Wall -Wno-psabi -Ofast -D CP_USE_DOUBLES=0 -D USE_CHIPMUNK

并致电g++ that ndk-build使是:

/Library/Android/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin/arm-linux-androideabi-g++ -MMD -MP -MF ./obj/local/armeabi-v7a/objs/native-activity/Main.o.d -fpic -ffunction-sections -funwind-tables -fstack-protector -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-exceptions -fno-rtti -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -Ijni -Ijni/Chipmunk/include/chipmunk -I/Library/Android/android-ndk-r8b/sources/android/native_app_glue -I/Library/Android/android-ndk-r8b/sources/cxx-stl/stlport/stlport -I/Library/Android/android-ndk-r8b/sources/cxx-stl//gabi++/include -Ijni -DANDROID -Wall -Wno-psabi -Ofast -D CP_USE_DOUBLES=0 -D USE_CHIPMUNK -Wa,--noexecstack -frtti -O2 -DNDEBUG -g -I/Library/Android/android-ndk-r8b/platforms/android-9/arch-arm/usr/include -c jni/Main.cpp -o ./obj/local/armeabi-v7a/objs/native-activity/Main.o

里面有很多内容,但要特别注意的是,它首先指定了-Os,然后是我的-Ofast,然后是-O2。为什么它指定-Os如果以后再说-O2,我不知道,但我很沮丧-Ofast正在被覆盖。


Add

APP_CFLAGS += -Ofast

到您的Application.mk。

它不会阻止 NDK 添加-O2但它会把你的标志放在 NDK 之后。 这对我来说适用于 NDK r8b。

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

控制 Android NDK 中的编译器标志? 的相关文章

  • 处理 Android 锁屏上的音量变化?

    我想做的是 能够在 android 4 4 上的锁屏上捕获音量增大 减小按钮操作 Google Cast 设计清单 https developers google com cast docs design checklist sender
  • 使用 GoogleServices 插件时忽略 Gradle ArchivesBaseName

    我经常使用 archivesbasename 来重命名我的输出 apk 但自从使用 google services 插件后 它就被忽略了 我能做些什么来让它再次工作吗 下面附上了我完整的 build gradle 感谢您的指点 apply
  • Android自定义控件命名空间问题

    我一直在为 Android 开发自定义控件 尽管我尝试按照建议进行操作here https stackoverflow com questions 4495511 how to pass custom component parameter
  • Android Manifest 自动生成无效权限

    我不小心在 Android 清单中输入了无效的权限名称 并且无法将其删除 这是我的清单代码
  • OPENGL ES 不工作:无当前上下文

    我尝试了 OpenGL ES2 for Android 一书中所示的程序 但它不起作用 我已经在Odroid E 三星s3 三星y 三星star上进行了测试 the gl version suported returns 2 but i g
  • 导航组件参数默认值

    在导航组件中 将参数从第一个片段发送到第二个片段时 默认值不会从导航图中获取哪个集合 这是我的代码 导航图 xml
  • 游标索引越界异常

    打开后出现光标索引越界错误 数据库 请任何人告诉我如何打开现有数据库 sqllite Android 我想在数据库上触发一个选择查询 检索一些信息 public void getPatient SQLiteDatabase db Strin
  • 如何在 Android 应用程序中单击按钮时打开 Gmail Compose?

    当我的 Android 应用程序中单击按钮时 我尝试打开 Gmail 撰写屏幕 我需要 Google 提供的 API 密钥吗 或者我需要在按钮 onClickListener 中做什么 任何形式的见解都非常值得赞赏 正如 JeffC 指出的
  • Android CursorAdapter、ListView 和后台线程

    我一直在开发的这个应用程序有包含数兆字节数据的数据库可供筛选 许多活动只是列表视图 通过数据库中的各个级别的数据下降 直到到达 文档 即从数据库中提取并显示在手机上的 HTML 我遇到的问题是 其中一些活动需要能够通过捕获击键并重新运行带有
  • FLAG_ACTIVITY_REORDER_TO_FRONT 被忽略

    我有一个包含项目列表的 FragmentActivity 当应用程序处于后台时 可以推送该项目列表 发生这种情况时 我想创建一个状态栏通知并提醒用户更新 当用户单击通知时 活动应重新排序到前面并显示在屏幕上 同时在列表底部显示新项目 所以我
  • Android 中有没有办法获取 SD 卡大小?

    欢迎大家 我已经在 Stackoverflow 和 google 上尝试过与此相关的每个问题 但没有一个有效 我已经尝试过类似下一个链接的操作 但它返回的内容与内部存储相同 如何获取外部存储 SD 卡的大小 带安装的 SD 卡 https
  • Android BLE 扫描在后台几分钟后停止

    当我为公司开发新冠肺炎接触者追踪应用程序时 我在后台遇到了 Android 扫描停止问题 这是我尝试过的 添加前台服务 禁用手机中所有与电池相关的优化选项 启用后台运行的应用程序 测试设备 搭载 Android 10 的 Galaxy S2
  • 更改 Android 中的媒体音量?

    我可以更改媒体音量吗 如何 到目前为止我用过这个 setVolumeControlStream AudioManager STREAM MUSIC 但有一个搜索栏并且想要更改媒体音量 而不是铃声音量 那么有人可以告诉我如何更改媒体音量onC
  • 如何使用 Swipe 视图实现 Android TabLayout 设计支持库

    我将使用 android TabLayout 设计支持库 但我不知道如何使用滑动视图 这是我的代码 XML
  • Spotify 登录错误 INVALID_CLIENT:无效的重定向 URI android

    我正在制作一个包含 Spotify 集成的应用程序 我点击了此链接https developer spotify com technologies spotify android sdk tutorial https developer s
  • 如何在Android网格视图中设置单元格大小?

    我正在尝试为应用程序制作一个带有大图标的网格视图 但我找不到任何有关修改 Android 上网格布局上的单元格大小的教程 有人可以给我一个例子或相关链接吗 Thanks 就像另一个一样适配器视图 http developer android
  • 有没有办法在多个嵌套的 RecyclerView 之间共享同一个 LayoutManager

    我正在开发一个显示游戏列表的应用程序 在每个游戏的 itemView 内 我还有一个要显示的视频列表 预览和结构如下 我部署了一个RecyclerView作为窗口根视图 然后对于视频 我使用网格样式的RecyclerView来显示 所以这里
  • SDK尚未初始化,请务必先调用FacebookSdk.sdkInitialize()

    我在实现 Facebook SDK 时遇到此错误 并且我tried https stackoverflow com questions 15490399 error inflating class com facebook widget l
  • 如何在 onDraw() 方法中定义与像素无关的高度

    我扩展了 View 来构建自定义小部件 我想用独立的像素单位定义小部件的高度 我认为可以通过将像素密度乘以所需的高度来完成 但我不知道该怎么做 到目前为止我所拥有的 最小化 public class Timeline extends Vie
  • 在android中使用BaseActivity的不同活动中的通用标头

    我想编写一次代码并在不同的活动中使用 我创建了一个Base Activity class为了那个原因 此外 不同活动中所有布局的标题都是相同的 我在以下人员的帮助下做到了这一点

随机推荐

  • 如何在一段时间后隐藏推送通知?

    我必须在一分钟后隐藏推送通知 为了实现这一目标 我应该在 Service Worker 中做什么 您可以使用notification close 方法 https developer mozilla org en US docs Web A
  • Spring JPA - “java.lang.IllegalArgumentException:投影类型必须是接口!” (使用本机查询)

    我正在尝试从 Oracle 数据库检索时间戳日期 但代码抛出 java lang IllegalArgumentException 投影类型必须是 界面 我尝试使用本机查询 因为原始查询对于使用 Spring JPA 方法或 JPQL 来说
  • 使用 ASP.NET MVC 的 SEO URL

    有没有一个确定的DO and DONT当实施 seo url 时 许多好的做法对于 html 网站来说似乎很好 但在中型 大型数据库网站上却失效了 据我所知 网址应该是www mysite com category page name he
  • require_once 与子文件夹[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我的文件夹
  • Angular2/Angular 种子 http-proxy-middleware 代理 api 请求

    我正在使用角种子项目 https github com mgechev angular seed tree master tools并尝试为在不同端口上运行的后端服务的 api 请求设置代理 到目前为止我的代码 Add proxy midd
  • 如何在 PowerShell 中取消“终止批处理作业 (Y/N)”确认?

    When I press Ctrl C in PowerShell I receive 终止批处理作业 是 否 如同https superuser com questions 35698 how to supress terminate b
  • 在 JFrame 中绘制矩形不起作用

    我有一段代码应该在JFrame但是当我在 Eclipse 上运行该程序时 它只是打开框架 但没有在其上绘制圆圈 这是代码 import javax swing import java awt public class Infout Info
  • 错误:2 UNKNOWN:访问被拒绝:通道 [contentbackchainchannel] 创建者组织

    我已经与两个组织建立了结构网络 协调者组织和参与者组织 使用orchestratororg的用户 我可以调用或查询链代码 但是当尝试使用participantorg的用户查询时 我收到如下错误 错误 2 未知 访问被拒绝 通道 conten
  • constexpr 默认默认构造函数

    如果我想声明我的 Clang 3 8 和 GCC 5 3 我会收到编译器错误default ed 默认构造函数为constexpr 根据this https stackoverflow com questions 20810378 shou
  • google action包如何定义自定义槽类型?

    您好 这是一个关于 google home action sdk gactions exe 的问题 at https developers google com actions reference rest Shared Types Que
  • Angular Material - 设置调色板

    我正在尝试结合材料设计建立一个 Angular 项目 我的 package json 的一部分如下所示 dependencies angular2 material button 2 0 0 alpha 3 angular2 materia
  • 如何在两台电脑之间共享svn仓库

    我的工作站上有 SVN 存储库 我在工作站和笔记本电脑上都使用它 在工作站上 我可以在本地访问存储库 但在笔记本电脑上 我必须连接互联网才能访问存储库 这不方便 因为我无法在飞机 火车和其他无互联网的地方工作 我想比较修订等 在笔记本电脑上
  • 如何获取mysql中两个日期之间的月份列表

    我必须获取 mysql 中两个日期之间的月份列表 For Example My Input is From date 23 01 2013 To Date 01 04 2014 Output Should be Jan 2013 Feb 2
  • 验证错误:ul 不允许作为元素 span 的子元素

    我不明白为什么 WC3 验证器将此 HTML 标记为无效 它报告的错误是 在此上下文中 不允许元素 ul 作为元素 span 的子元素 抑制该子树中的更多错误 我正在使用 HTML5 此代码用于面包屑 span class bread ul
  • 如何以编程方式显示“清除默认值”?

    现在我正在开发一个家庭启动器应用程序 我想清除默认家庭启动器的默认设置 例如 三星主页 即 我想展示Settings gt Applications gt Manage Application gt Samsung Home gt clea
  • Swift:未定义的符号:iTunesApplication

    我现在正在尝试创建 Swift OS X 应用程序 但发现使用 ScriptingBridge 很困难 我包含了正确的 iTunes h 文件 并且当我将 iTunesApplication 写入类型时 Xcode 没有给出任何错误 但是
  • eclipse:链接资源的位置无效

    我尝试链接一个项目文件夹 该文件夹是特殊的 vista 文件夹 appdata roaming user myproj 它显示了上面的错误消息 什么阻止这样做 我尝试以管理员身份运行 但它给出了相同的消息 当然 从appdata文件夹中出来
  • 具有多个约束的 PostgreSQL 更新插入

    我正在尝试在有两个约束的表上进行更新插入 一种是a列是唯一的 另一种是b c d和e列一起是唯一的 我不想要的是 a b c d 和 e 一起是唯一的 因为这将允许两行在 a 列中具有相同的值 如果违反第二个约束 唯一的 b c d e 则
  • MSSQL 和 PHP:“传递给 sqlsrv_query 的参数无效。”

    我正在尝试通过 PHP 运行一个非常简单的 MSSQL 更新语句 但收到一条错误消息 无效的参数已传递给 sqlsrv query 这是连接等级 http pastebin com 3j4zmHJY我正在使用 最相关的是查询功能 funct
  • 控制 Android NDK 中的编译器标志?

    我知道我可以使用LOCAL CFLAGS将参数传递给编译器 然而 ndk build正在我的后面插入选项LOCAL CFLAGS 因此它们优先 例如我想指定 Ofast but ndk build adds O2在我自己的标志之后 并且由于