问题标签 [fat-binaries]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 不同架构切片中的“共享”字节码?
我有这个包含两个切片(armv7 和 armv7s)的通用二进制文件。我有一些简单的类,它们只保存一些数据。是否可以编译这些类,以便它们只在二进制文件中一次而不是每个切片一次?我问这个的原因是我想减少应用程序的编译大小。
谢谢!
cuda - CUDA:如何使用 -arch 和 -code 以及 SM 与 COMPUTE
我仍然不确定在使用 nvcc 构建时如何正确指定代码生成的体系结构。我知道在我的二进制文件中嵌入了机器代码和 PTX 代码,这可以通过控制器开关-code
和-arch
(或两者的组合使用-gencode
)来控制。
现在,根据这一点,除了两个编译器标志之外,还有两种指定架构的方法:sm_XX
和compute_XX
,其中compute_XX
指的是虚拟架构和sm_XX
真实架构。该标志-arch
仅采用虚拟架构的标识符(例如compute_XX
),而该-code
标志同时采用真实架构和虚拟架构的标识符。
文档状态-arch
指定了为其编译输入文件的虚拟架构。但是,此 PTX 代码不会自动编译为机器代码,而是一个“预处理步骤”。
现在,-code
应该指定 PTX 代码针对哪些架构进行组装和优化。
但是,尚不清楚将在二进制文件中嵌入哪个 PTX 或二进制代码。例如-arch=compute_30 -code=sm_52
,如果我指定,这是否意味着我的代码将首先编译为功能级别 3.0 PTX,然后将创建功能级别 5.2 的机器代码?将嵌入什么?
如果我只是指定-code=sm_52
会发生什么?只有 V5.2 的机器代码会嵌入由 V5.2 PTX 代码创建的机器代码吗?和有什么区别-code=compute_52
?
c++ - 与 CUDA 代码链接时出错:`__cudaRegisterLinkedBinary_ 的多个定义
我有一些 CUDA 代码正在编译到 .a 库中,还有一些(与 CUDA 相关的)常规 C++ 代码用于使用它的应用程序。一切都在进行中间链接。
现在,在一台机器上(使用 CUDA 8.0 RC)构建成功,但在另一台机器上(使用 Maxwell 而不是 Kepler 卡,以防万一)我得到:
我实际上开始从编译到调用库代码的二进制文件中删除文件 - 只有当我删除所有文件时,链接才会成功。
我的问题:
- 在什么情况下会出现这种不一致的行为?
- 这可能是库和二进制文件“第二次链接”的结果吗?
- 我可以做些什么来准确地确定实际冲突的内容(例如要查找哪些符号)?
- 如果实际上没有任何冲突,我应该怎么做才能避免这种情况?
笔记:
- 在一台机器上我使用的是 CUDA 7.5,在另一台机器上它是 CUDA 8.0 RC。
windows - 如何将 64 位和 32 位可执行文件合二为一?
好吧,所以我的想法是通过某种方式将 64 位和 32 位 Windows 可执行文件绑定到一个应用程序中,这样如果它不运行 64 位版本,它就会尝试 32 位版本。
我正在阅读有关 PE 的内容并了解了一些有关 MS-DOS 实模式存根的知识,它说明了它如何调用应用程序(通常是错误消息)。但是每次我尝试对 MS-DOS 实模式存根进行研究时,它似乎只显示错误消息。所以我的想法是用我的 32 位应用程序覆盖存根。
我天真地认为,当 32 位操作系统运行 64 位可执行文件时,它会失败,然后运行存根文件。
有什么方法可以让我的可执行文件 32 位/64 位独立?
c - 解析通用/胖二进制文件
我正在做一个项目来实现一个基本的nm
使用 memory-mapping mmap
。我已经能够使用以下代码解析 64 位二进制文件:
根据这个链接,mach-o 和 fat 二进制文件之间的唯一区别是fat_header
它上面的结构,但只是跳过
没有让我进入 load_command 区域(段错误)。如何访问胖/通用二进制文件的加载命令。
我正在使用运行 macOS High Sierra 的 64 位 Mac。谢谢你。
frameworks - Xcode 10 的胖框架脚本?
我在我的方案中存档的后期操作中使用了这个脚本来制作一个 FAT 二进制框架。可以在模拟器和实际设备上运行的一种。
https://gist.github.com/gauravkeshre/eabb2a13ef6d673fadec84ca60b56b05
有谁知道如何将其转换为与 Xcode 10 一起使用?
使用遗留构建系统修复错误,但我宁愿不依赖它。
这是脚本本身:
** BUILD SUCCEEDED ** 后输出日志中的错误:
接着:
一旦进入 Release-universal 文件夹,第一个路径就会动摇,因为没有 .framework 文件夹。相反,框架的内容在那里。
objective-c - 无法将本机 Obj-C 库绑定到 Xamarin.iOS 项目
我在尝试将我在 XCode 中创建的本机 Obj-C 静态库绑定到我的 Xamarin.iOS 项目时遇到了困难。我完成了创建胖二进制文件的必要步骤。它创建了 x86 和 ARM 架构,但它抛出一个错误,说它在包装类中找不到本机 Obj-C 类。当我使用以下命令“nm -arch”检查手臂符号表时,符号表为空
makefile - How to run Makefile in mac
I want to create a fat library in mac. So I foll this. I copied the content of makefile into an edit text and renamed it to Makefile.mak
. I opened the terminal in where the makefile is located and types "make" in the terminal and hit enter. I am getting an error that "Makefile is not found". What would be the reason for this? Where I made a mistake?
Please help me.
Thanks
c++ - 构建 Mozilla nspr 的胖二进制文件
我正在尝试将 mozilla nspr 构建为胖二进制文件。我能够使用 cmake 和下一行将简单的项目构建为胖二进制文件:
我在构建 Mozilla nspr 时也尝试这样做。这是我的步骤:
结果架构是 x86_64。我在这里想念什么?请指教。