我正在尝试为$(ARCHS_STANDARD_32_BIT)体系结构构建ios项目- armv7对于最新的iOS(iOS 7.0),我遇到以下错误:
Unknown register name 'q0' in asm
Run Code Online (Sandbox Code Playgroud)
在功能上
static void neon_asm_mat4_vec4_mul(const float* __restrict m, const int* __restrict v, int* __restrict output)
{
asm volatile
(
// Store m & v - avoiding q4-q7 which need to be preserved - q0 = result
"vldmia %1, { q8-q11 } \n\t" // q8-q11 = m
"vldmia %2, { q1 } \n\t" // q1 = v
// Convert v to floats
"vcvt.f32.s32 q1, q1 \n\t"
// result = first …Run Code Online (Sandbox Code Playgroud) 我想了解更多Android手机上使用的CPU.原因是我们正在构建C库,它具有我们可以设置的某些CPU /数学处理器架构标志.
到目前为止,我们发现所有Android设备的CPU都是ARM设计,并且是ARMv6(旧设备,低端,华为,中兴,小型SE)或ARMv7(Honeycomb平板电脑和所有更昂贵的设备,几乎都具有WVGA和更高的分辨率)我检查了~20台设备,并且都有这种类型的处理器.那是对的吗?还有其他人吗?
现在谈到多媒体和数学运算时,我认为两个单元很重要 - 用于浮点运算的VFP和SIMD- NEON.在测试了上面提到的一组设备后,我发现几乎所有设备都支持VFP,而NEON则不支持.对此有何评论?
我不知道ARMv6和ARMv7的区别究竟是什么(除了一般的速度).现在我们正在构建一个多媒体C库,它有几个用于构建的标志.我的问题是如何在一侧定位最大数量的设备以及如何允许更好设备的用户使用他们的硬件.我的建议是准备3个不同的版本:ARMv6/VFP,ARMv7/VFP和ARMv7/VFP/NEON.其他提案?
在ARMv6的/ VFP我认为应该对所有配置下运行,除了设备,其缺少VFP(如旧的HTC野火) -但这些仍然不支持的.
这是一个好方法吗?欢迎任何评论.
此致,STeN
我已经浪费了3天"解决"这个问题(实际上我已经尝试了我能想象的一切但什么都没有).
在我的应用程序的二进制上载时,我收到以下错误:ERROR ITMS-9000:"此捆绑包无效.armv7s需要包含armv7体系结构." 在SoftwareAssets/SoftwareAsset(MZItmspSoftwareAssetPackage).
我有一个第三方.a库,显然只是为了兼容armv6而编译,其中新的Xcodes(3.2.6和4)现在都需要一个单独的armv7切片才能在设备上运行.链接错误是:文件是通用的,但不包含架构armv7的(n)armv7片.
任何人都知道如何让两个新的Xcode中的任何一个像3.2.5一样运行并接受现有的库,而我正在等待库供应商制作一个armv7版本?
直到xcode 4 final(我在可用的时候使用3.latest和4 GM)这没有发生.当我升级到xcode 4最终版本时,我在尝试将armv7版本与我的非armv7库链接时开始出现链接错误(我的项目使用默认的标准armv6 armv7有效架构设置):
ld: warning: ignoring file ../bin/iOS static/arm/libssl.a, file was built for archive which is not the architecture being linked (armv7)
ld: warning: ignoring file ../bin/iOS static/arm/libcrypto.a, file was built for archive which is not the architecture being linked (armv7)
Undefined symbols for architecture armv7: -- list of symbols --
Run Code Online (Sandbox Code Playgroud)
armv6版本编译得很好,但整个编译过程失败,出现77个链接错误.
我理解这是预期的行为,它不会与armv6 lib链接到armv7.该修复程序仅将我的项目设置为armv6.我的问题是:为什么这在xcode的早期版本中有效?
如果我只设置为armv6,我会开始收到此警告:
Check dependencies
[BWARN]warning: all apps should include an armv7 architecture (current ARCHS = "armv6").
Run Code Online (Sandbox Code Playgroud)
我不喜欢看到警告:-)任何人有类似的问题?
谢谢,
费尔南多
当我更新我的第一个iOS应用程序时,我有2个问题验证它们,
*iPhone/iPod Touch:application executable is missing a required architecture.
At least one of the following architecture(s) must be present: armv7
*Unable to extract entitlements from application: (null)
Run Code Online (Sandbox Code Playgroud)
Info.plist和构建设置都是默认设置,我唯一改变的是代码签名Identity调试和发布到我的分发配置文件,应用程序ID和Bundle ID相同.
architecture objective-c entitlements armv7 code-signing-entitlements
我的主要开发机器是(Raspberry Pi) x86_64,而我的一些部署环境是arm7vl(Raspberry Pi)。对于大多数 Python 开发来说,这不是问题,但某些 Python 库仅在PyPI forx86_64或piwheels for aarmv7l. 这导致使用诗歌遇到一些困难。作为一个简单的示例,这是在计算机pyproject.toml上创建的文件x86_64:
[tool.poetry]
name = "poetrytest"
version = "0.1.0"
description = ""
authors = ["Your Name <you@example.com>"]
[tool.poetry.dependencies]
python = "^3.9"
opencv-python = "^4.5.5"
[tool.poetry.dev-dependencies]
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
Run Code Online (Sandbox Code Playgroud)
相应的poetry.lock文件包含从 PyPI 中提取的文件的哈希值,当您运行时,poetry install一切都会按预期工作。 但是,如果将这两个文件复制到 Raspberry Pi,安装将无法找到合适的.whl文件,因此会退回到尝试从源代码构建,这大约需要 2 小时并且失败:-(
要使其在 Pi 上工作,您需要将此块添加到pyproject.toml:
[[tool.poetry.source]]
name = "piwheels"
url …Run Code Online (Sandbox Code Playgroud) 所以我知道armv7s针对iPhone 5进行了优化,添加它将使我的代码在该设备上运行得更快一些.
有谁知道差异是什么?有没有基准等?
权衡是应用程序的大小.我的估计应用程序大小从3.3MB增加到5MB,增加了armv7s,下载量增加了50%.
我在想,除非速度提升很有吸引力,否则下载成本可能不值得,但我似乎无法找到有关收益的讨论.
我正在尝试使用MBProgressHUD.我在项目中添加了标题.m,在类中导入了标题,并以这种方式从ibaction调用MBProgressHUD:
-(IBAction)submitForm:(id)sender{
MBProgressHUD *HUD = [[MBProgressHUD alloc] initWithView:self.view];
[self.view addSubview:HUD];
HUD.labelText = @"Connecting";
[HUD show:YES];
}
Run Code Online (Sandbox Code Playgroud)
当我构建项目时,它发生了一个错误:
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_MBProgressHUD", referenced from:
objc-class-ref in FormViewController.o
ld: symbol(s) not found for architecture armv7
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
我该如何解决?你能帮助我吗?
在编译iPhone应用程序时,有一个"优化"架构(仅限armv7)与标准armv6/armv7架构的设置.
编译armv7架构有什么好处/后果?