为 iOS 7 编译 x264

2023-12-15

我在为 iOS 编译 x264 时遇到错误。

我有 Xcode 版本 5.0 (5A1413) 和 Apple LLVM 版本 5.0 (clang-500.2.75)(基于 LLVM 3.3svn)。我正在编译 x264-snapshot-20130925-2245。

Config:

CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang ./configure \
--host=arm-apple-darwin \
--sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk \
--prefix=armv7 \
--extra-cflags='-arch armv7' \
--extra-ldflags="-L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/usr/lib/system -arch armv7" \
--enable-pic \
--enable-static

出现错误:

common/arm/cpu-a.S:29:7: error: unknown token in expression
.align
      ^
common/arm/cpu-a.S:139:5: error: instruction 'suble' can not set flags, but 's' suffix specified
    subles ip, ip, #1
    ^

Xcode 5工具链中的相关变化是LLVM编译器现在默认使用内置汇编器,并且内置汇编器需要更严格地遵守ARM统一汇编语言。

有两种方法可以使用 Xcode 5 工具链进行编译:

  1. 给 clang 标志 -no-integrated-as。将其添加到 --extra-cflags 应该可以工作。 (该标志对我编译单个文件有用,但我从未将其放入配置中。)将此视为一种解决方法。

  2. 修复 x264 的 common/arm 子目录中的汇编源代码。其实这很简单,我就是这么做的。这是正确的修复方法。顺便说一句,我即将提交包含这些更改的 x264 补丁。

汇编器会发出许多错误,它们分为四类:

  • 在 cpu-a.S 中,“.align”指令应为“.align 2”。 (显然它过去默认为 2,现在 2 必须是显式的。)

  • 多个文件中的多个 subles 和 sublts 指令。这些是“sub”(减)的变体,后跟条件(2 个字符)和“s”后缀。现在“s”必须位于条件之前。因此“subles”=>“subsle”和“sublts”=>“subslt”。

  • 各种文件中有相当数量的 ldrd 指令。该指令的意思是“加载寄存器,双倍(从内存)”。它将 2 个 32 位字从内存加载到寄存器中。过去只命名第一个寄存器就可以了;现在两者都需要被命名。他们总是相邻的。所以“ldrd r2,无论什么”需要变成“ldrd r2,r3,无论什么”。 “ldrd r6,某事”变成“ldrd r6,r7,某事”。 ETC。

  • 在pixel-a.S中,有一条指令“vmov.32 r0, r1, d0”。这是不正确的。 vmov.32 表示移动 32 位量,但参数表示将 d0(64 位)移动到 r0 和 r1 中。显然旧编译器将“.32”部分作为提示。我相信它应该是“vmov r0,r1,d0”并且该更改对我有用 - 但我没有绝对的证据证明这是正确的指令。

非常感谢 Apple 开发者论坛上的 gparker!如果没有他/她的帮助,我无法弄清楚这一点。链接到论坛讨论,需要 Apple ID。

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

为 iOS 7 编译 x264 的相关文章

  • 使用prefersLargeTitles 和 UITableView 平滑滚动

    我在使用时遇到了滚动问题prefersLargeTitles并添加了UITableView 如果我设置prefersLargeTitles在导航控制器中 其根是UITableViewController一切都很好 导航大标题的滚动方式与我们
  • 如何更改 UISwitch 关闭状态的默认颜色?

    我想更改 UISwitch 中 onTintColor 的颜色以表示关闭状态 切换位于表格视图中 并且以编程方式进行切换 settingsSwitch setBackgroundColor UIColor whiteColor settin
  • Xcode 不会在故事板中显示我的文本字段占位符文本

    当我在属性检查器中分配文本字段的占位符值时 它不会显示在故事板中 但是 当我运行应用程序的模拟器时 它就在那里 我缺少什么设置吗 我只想能够在编辑器中看到占位符文本 下面是 xcode 和模拟器之一的屏幕截图 我遇到了同样的问题 幸运的是我
  • 为 Android 编译时显示 FFMPEG 错误

    我正在尝试将 ffmpeg 添加到我的 android 项目中 我使用的是 ubuntu 14 04 操作系统 我正在关注此链接 Link https software intel com en us android blogs 2013
  • 编写支持 iOS 3.1.3 和 iOS 4.x 的 iOS 应用程序时的陷阱

    我想编写一个可以在 iOS 3 1 3 到 iOS 4 1 上运行的应用程序 我知道如何设置部署目标和基础 SDK 阅读 Apple 文档后 它很大程度上依赖于检查类是否可用和 或实例是否响应特定选择器 现在我的问题是 如果 Apple 从
  • 如何保存 1 个 xcode 项目中的所有构建设置并在其他 xcode 项目上使用它们?

    我使用 xcode 4 5 和 cordova phonegap 来构建我的应用程序 我投入了大量时间来获取适合我的 Xcode 项目的构建设置 并且我想在我正在构建的多个应用程序上重用这些设置 我正在寻找是否有一种快速的方法来导出这些设置
  • Swift 数组设置索引值不起作用

    我有一个方法 下面的内容 其中queue2只是一个 Int 我打印了很多东西 看看一切是否都正常 public func cool item Int println item println back queue2 insert item
  • 在界面生成器/故事板中设置 UIButton 图像

    我有一个视图控制器 我在故事板中添加了一个圆形矩形按钮 该应用程序运行良好 我还使用故事板将按钮连接到 segue 我正在尝试为此按钮设置一个自定义图像以用于其开和关状态 我如何访问此按钮并设置其属性 在本例中为开和关图像 这是一个屏幕截图
  • 使用 UIActionSheet 更改视图时工具栏项目消失

    当从 a 启动视图时UIActionSheet按钮 通过导航栏后退按钮返回视图后 工具栏虽然仍然可见 但上面没有任何以前的按钮 自从更新到 iOS 6 以来 这个错误就出现了 并且是在模拟器和仅运行 iOS 6 的设备上测试时发生的 如果我
  • 对 UIImage 进行方形裁剪,导致图像拉伸

    当尝试执行 UIImage 的中心裁剪时 我得到以下结果 左侧是原始图像640 1136 右边是适合正方形的裁剪图像UIImageView at 320 320 turns to 我对比率元素进行了相当多的修改 以便它可以正确检测要修剪的量
  • Swift:从自定义 UITableViewCell 中的 UITextField 检索文本并将其放入数组中

    我正在制作一个非常简单的应用程序 用户在第一个屏幕中输入人数 在第二个屏幕中 它会生成一些UITableViewCell基于用户在第一个屏幕中输入的数字 这UITableViewCell have a UITextField在其中 一旦用户
  • 从 RemoteIO 保存音频的示例?

    我进行了搜索 但没有找到任何从 RemoteIO 音频单元保存音频的好示例或教程 我的设置 使用 MusicPlayer API 我有几个 AUSamplers gt MixerUnit gt RemoteIO 音频播放效果很好 我想添加将
  • 如何使用自签名证书为 TLS 创建 iOS NWConnection?

    我正在尝试将 Apple 的新 NWConnection 类用于我的 MQTT 客户端 为了进行测试 我需要能够创建到本地测试代理的 TLS 连接 该代理具有自签名证书 到目前为止 我只是使用以下命令设置连接 self connection
  • 在 Swift 中检查一个数组是否包含另一个数组的所有元素

    我想为数组编写一个扩展来检查一个数组是否包含另一个数组的所有元素 在我的用例中它是字符串对象 但我一直得到 Cannot convert value of type T Generator Element to expected argum
  • 打印附加结构(swift 4)

    我有三个 textifled 用于将数据附加到结构中 如何打印我附加的内容 现在我收到一条错误消息 import UIKit class ViewController UIViewController IBOutlet var c UITe
  • Cognito/IAM 策略和 S3 获取对象

    我正在尝试将 S3 和 Cognito 集成到我的 iOS 应用程序中 但到目前为止尚未成功 我相信该错误与我针对 Auth 和 Unauth 用户的 IAM 策略有关 所以这是我的政策 Version 2012 10 17 Stateme
  • Swift 中 UIImages 的淡入淡出动画

    我有一组图像 我希望它们在登录屏幕的背景中淡出 我无法在 swift 中找到任何可以做到这一点的东西 有什么办法我可以做到吗 这是我当前的代码 override func viewDidLoad super viewDidLoad star
  • 应用未能及时恢复

    我在一个非常具体的场景中遇到 未能及时恢复 崩溃 我认为与看门狗相关 仅在从后台恢复时 并且仅在进入后台后在很短的时间内执行此操作 a最多几秒钟 这似乎是相关的崩溃日志 Incident Identifier E30F2238 5B15 4
  • 如何自动为 Swift 类创建初始化程序?

    UPDATE 使用结构而不是类 struct 在很多方面都更好 它有自己的初始化器 这是我的模型课 是否有可能创建init自动方法 每次我都必须将所有变量一一初始化 这会花费很多时间 class Profile var id String
  • 如何使用 afnetworking 在后台上传任务

    我正在尝试使用 AFNetworking 上传大文件 并在应用程序处于后台时继续上传 我可以很好地上传文件 但是当我尝试使用后台配置时 应用程序崩溃并显示以下堆栈跟踪 异常 EXC BAD ACCESS 代码 1 地址 0x8000001f

随机推荐

  • 如何“停靠”/附加 winforms 表单

    我想将同一个应用程序中的两个表单相互附加 就像一些音乐播放器 例如 winamp 所做的那样 其中窗口可以在一侧分离或附加在一起 然后移动一个窗口电影另一个窗口也 也许有一个更好的术语来描述这种行为 有任何模式或代码示例可以做到这一点吗 看
  • 使用 JavaScript 仅允许 HTML 输入中的特定字符

    我编写了一些 JavaScript 和 jQuery 代码 它们只接受文本框中的数字输入 但这还不够 我需要将输入限制为某些数字 此文本框需要处理 SSN 号码 瑞典 SSN 并且必须以 19 或 20 开头 我想强制它以这些号码开头 但我
  • Spring 会话 + Spring Web 套接字。根据会话 ID 向特定客户端发送消息

    我已关注Quetion1 and Quetion2从堆栈溢出向特定客户端发送消息 基于其sessionId但找不到成功 下面是我的示例 RestController 类 RestController public class SpringS
  • Swift 可选 - 不同的解包方式

    我就直接说吧 有什么区别 var test String test this is an optional string if test nil println test IS NOT nil else println test is ni
  • 如何定义一个可以有多种形式的javascript属性?

    例如 IE 表格控件可以按如下方式使用 recordset fields i name recordset fields count 如何使用 javascript 定义 fields 属性 当我定义 this fields new Fie
  • iOS如何实现协议的@property

    我的理解是 协议指定方法名称 而符合该协议的其他人则负责方法的实现 那么协议中声明的属性又如何呢 实现一个属性是否意味着实现它的setter和getter 属性是一个或两个具有特定签名的方法的奇特名称 Objective C 为其提供了一个
  • 如何更改 Xamarin 表单中的 Picker 字体颜色和大小?

    我是 Xamarin 新手 目前正在 Xamarin Forms PCL 中做一个项目 有没有办法改变Picker的字体颜色和大小
  • 确定哪个依赖数组变量导致 useEffect 钩子触发

    有没有一种简单的方法可以确定a中的哪个变量useEffect的依赖数组触发函数重新触发 简单地注销每个变量可能会产生误导 如果a是一个函数并且b是一个对象 它们在记录时可能看起来相同 但实际上不同并导致 useEffect 火灾 例如 Re
  • 堆溢出的危险?

    我有一个关于堆溢出的问题 据我所知 如果堆栈变量超出其缓冲区 它可能会覆盖 EIP 和 ESP 值 例如 使程序跳转到编码器不希望它跳转的位置 据我了解 由于向后小端存储 其中数组中的字符 向后 存储 从最后到第一个 这似乎表现得像这样 另
  • PHP中的CSRF(跨站请求伪造)攻击示例及预防

    我有一个网站 人们可以这样投票 http mysite com vote 25 这将对第 25 项进行投票 我只想将此功能提供给注册用户 并且仅当他们愿意时才提供 现在我知道当有人在网站上忙碌时 有人给他们一个像这样的链接 http mys
  • 如何将 arrayList.toString() 转换为实际的 arraylist

    在我的软件中 由于没有Array数据类型输入SQLite 我保存了我的ArrayList as a String 现在我需要使用我的数组并希望将其转换回 ArrayList 我该怎么做 这里有一个例子 ArrayList
  • 如何使用谷歌地图V2在android中使用MapView?

    我想在我的活动中显示地图 在谷歌地图 V1 中我们使用
  • 使用 CSS 制作 Google API 地图标记动画? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 http bluefaqs com 2016 02 how to animate a map location marker with css 显示脉动的 GPS 位置蓝点 位于
  • SQL 点表示法

    有人可以向我解释一下 SQL Server 如何使用点表示法来识别桌子的位置 我一直以为地点是Database dbo Table但我看到代码中有其他东西代替dbo 就像是 DBName something Table有人可以解释一下吗 这
  • 在 Mac 上使用 Selenium WebDriver 在 Firefox 中打开新选项卡

    我刚刚安装了 Selenium Web Driver 并尝试了一下 效果很好 我的用例可以描述如下 在具有伪 X 服务器 Xvfb 的服务器上启动 Firefox 新的 Driver Firefox 对象 打开 10 个选项卡并在每个选项卡
  • upload_max_filesize、php.ini 和 Google App Engine

    我有一个在 Google App Engine 上运行的 PHP 5 5 应用程序 它基于 CodeIgniter 框架 最近我开始需要上传超过 8 MB 的文件 我收到以下错误 PHP Warning POST Content Lengt
  • 将 LocalDate 转换为 LocalDateTime 或 java.sql.Timestamp

    我正在使用 JodaTime 1 6 2 我有一个LocalDate我需要转换为 Joda LocalDateTime or a java sqlTimestamp用于或映射 这样做的原因是我已经弄清楚如何在LocalDateTime an
  • 比较 2 个 JSON 对象 [重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript 中的对象比较 是否有任何方法可以接受 2 个 JSON 对象并比较这两个对象以查看是否有任何数据发生更改 Edit 审查完评论后 需要进行一些澄清 JSON 对象定义为 一组无序
  • Flask 在请求之前获取 url 变量?

    在 Flask 中 我有带有变量的 url 规则 例如 my blueprint add url rule
  • 为 iOS 7 编译 x264

    我在为 iOS 编译 x264 时遇到错误 我有 Xcode 版本 5 0 5A1413 和 Apple LLVM 版本 5 0 clang 500 2 75 基于 LLVM 3 3svn 我正在编译 x264 snapshot 20130