根据环境选择C二进制文件

2024-01-24

我使用特定标志(-Os、-O2、-march=native 及其组合)编译了代码,以便产生更快的执行时间。

但我的问题是我并不总是在同一台机器上运行(因为在我的实验室中有几台不同的机器)。有时我在 MacOS 或 Linux 中运行(这两种情况都具有不同的操作系统版本)。

我想知道是否有一种方法可以根据二进制文件运行的环境(我的意思是缓存大小、CPU 核心和有关特定机器的其他属性)来确定将运行哪个二进制文件?换句话说,如何根据所使用的具体机器选择(当程序加载时)更快的二进制文件(之前使用不同的目标二进制文件大小和指令集扩展进行编译)?

提前致谢。


What you're talking about is called a fat binary (not FAT, the acronym). From Wikipedia1 https://en.wikipedia.org/wiki/Fat_binary:

胖二进制文件(或多架构二进制文件)是一种计算机可执行程序,已使用多个指令集本机代码进行扩展(或“增肥”),因此可以在多种处理器类型上运行。这会导致文件比普通的单一架构二进制文件大,因此得名。

乍一看,似乎没有太多支持(参见这个问题 https://softwareengineering.stackexchange.com/questions/274846/why-arent-fat-binaries-more-widely-used-for-cross-platform-applications从 Programmer StackExchange 获取更多信息)。苹果在从 PowerPC 过渡到英特尔时曾短暂实现过这一点,但此后似乎并没有对此进行太多探索。

从技术上讲,胖二进制文件是指可以在多个体系结构上运行的单个二进制文件......但我想前提是适用于在多个操作系统上运行的单个二进制文件。这又回到了 Bizkit 在他/她/zir 的回答中提出的观点——通常,你会提前为你所处的环境编译源代码。

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

根据环境选择C二进制文件 的相关文章

  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • BASIC 中的 C 语言中的 PeekInt、PokeInt、Peek、Poke 等效项

    我想知道该命令的等效项是什么Peek and Poke 基本和其他变体 用 C 语言 类似PeekInt PokeInt 整数 涉及内存条的东西 我知道在 C 语言中有很多方法可以做到这一点 我正在尝试将基本程序移植到 C 语言 这只是使用
  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • Nuitka 未使用 nuitka --recurse-all hello.py [错误] 编译 exe

    我正在尝试通过 nuitka 创建一个简单的 exe 这样我就可以在我的笔记本电脑上运行它 而无需安装 Python 我在 Windows 10 上并使用 Anaconda Python 3 我输入 nuitka recurse all h
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么

随机推荐

  • gwt编译错误

    Compiling module com sem Sem10 Finding entry point classes ERROR Unable to find type com sem client Sem10 ERROR Hint Pre
  • spring-boot-starter-oauth2-client、spring-cloud-starter-oauth2 和 spring-security-oauth2 之间有什么区别

    我正在为 OAUTH2 中的 client credentials 授予类型流开发客户端应用程序 我无法决定在我的项目中为此目的使用以下依赖项 spring boot starter oauth2 客户端 spring cloud star
  • Flutter:使用插件构建需要符号链接支持

    每当我尝试安装任何依赖项时 我都会在日志中收到以下错误pubspec yaml Building with plugins requires symlink support Please enable Developer Mode in y
  • 比使用“A UNION (B in A)”更高效的 SQL?

    编辑1 澄清 感谢您迄今为止的回答 反响令人欣慰 我想稍微澄清一下这个问题 因为根据答案 我认为我没有正确描述问题的一个方面 我确信这是我的错 因为我什至很难为自己定义它 问题在于 结果集应仅包含 tstamp 介于 2010 01 03
  • 如何在 iPhone 中的 uilabel 上显示倒计时?

    我在视图上有一个 uilabel 和一个 uislider 我想使用滑块设置标签的时间 滑块的范围是 00 00 00 到 03 00 00 意味着 3 小时 滑块上的间隔是 0 5 分钟 还有如何显示 我希望即使应用程序关闭 计时器也会运
  • Symfony2 在包和控制器之间传递数据

    这更像是一个 最佳实践 问题 而不是一个实际问题 我正在 Symfony 2 中开发一个项目 并且构建了一个包来处理我的所有 Web 服务 基本上 一个控制器获取一些 JSON 数据 将其发送到另一个控制器以检查其是否与所描述的格式匹配 然
  • 证书文件存在时出现“CryptographicException:找不到请求的对象”

    我有一个 p12证书文件 我像这样创建我的证书 var certificate new X509Certificate2 certFileLocation mySecret X509KeyStorageFlags Exportable Wh
  • 错误:“if”之前应有不合格的 id

    我用谷歌搜索了这个错误 直到我脸色发青 但无法将任何结果与我的代码联系起来 这个错误似乎通常是由于牙套 父母等放错位置或丢失造成的 我已经很长时间没有写过任何 C 了 所以我可能遗漏了一些明显的 愚蠢的东西 这是我正在编写的 Qt Mobi
  • Hadoop ChainMapper、ChainReducer [重复]

    这个问题在这里已经有答案了 我对 Hadoop 比较陌生 并试图弄清楚如何使用 ChainMapper ChainReducer 以编程方式链接作业 多个映射器 减速器 我找到了一些部分示例 但没有一个完整且有效的示例 我当前的测试代码是
  • 使用 url 参数时,iPhone 的 Web 应用程序从主屏幕切换到 Safari

    我为 iPhone 开发了一个网络应用程序 并将其添加为书签并添加到 iPhone 的主屏幕上 不过 我注意到它有一个问题 它会按预期工作 直到我导航到应用程序中具有查询字符串和参数的页面 例如 www mywebapp com page0
  • 在 calc() 中使用分数 (fr) 给出“无效的属性值”

    我正在尝试使用calc 使用 CSS 网格时在某些宽度上 所以我正在尝试的一件事是 grid template columns calc 1fr 50px calc 1fr 50px 因为我希望它是两个分数 但删除 50px 因为它用于填充
  • Meteor:从客户端上传文件到 Mongo 集合 vs 文件系统 vs GridFS

    Meteor 很棒 但它缺乏对传统文件上传的原生支持 有多种选项可以处理文件上传 来自客户 可以使用以下方式发送数据 Meteor call saveFile data 或 collection insert file data POST
  • 查找 maven 用于运行 testng 测试用例的类路径

    我可以使用 maven 的哪些选项来确定 maven 正在使用哪个类路径运行 testng 测试用例 您没有提供 Maven 版本 但至少在 3 x 也可能是 2 x 中您可以使用 X 调试 选项运行命令 这样 测试类路径就会在测试运行之前
  • 如何更改默认的WCF服务绑定?

    在我的 WCF 中 我有一些服务 其中之一必须对消息大小有更大的限制 因此我必须创建另一个绑定并更改配置 但是 我在 Web config 中看不到我的服务的任何配置 什么也没有 有什么是默认的吗 那么我可以在哪里更改服务绑定呢 在 WCF
  • 错误:无法访问 com.facebook.imagepipeline.animated.base.AnimatedImage 的 AnimatedImage 类文件未找到

    我收到错误 错误 无法访问 AnimatedImage 未找到 com facebook imagepipeline animated base AnimatedImage 的类文件 尝试运行时https github com WhatsA
  • 使用 C# 创建 Windows 窗体向导

    我是 C Net 中的 Windows 窗体应用程序创建向导的新手 所以我对向导创建没有任何想法 请给我一些关于创建多个向导的想法 问候 拉维 有很多方法可以做到 为每个向导步骤创建一个表单是可能的 但非常尴尬 而且丑陋的是 当用户改变步骤
  • VSTO:应用重点

    有人知道如何查看 VSTO 项目的 Excel 窗口是否处于活动 焦点状态吗 我正在寻找相当于System Windows Window IsActive 我也曾为此感到沮丧 您在 VSTO 应用程序中使用对话框吗 如果是这样 我所做的就是
  • 如何检测滑动手势方向?

    我需要检测我的滑动手势的方向 但我遇到了问题 手势有效 但我不知道如何检测方向 swipeGesture UISwipeGestureRecognizer alloc initWithTarget self action selector
  • 没有System32如何解决“java.lang.UnsatisfiedLinkError:找不到依赖库”?

    我正在 Eclipse 上开发一个 Java 项目 该项目通过 JNI 使用 C OpenCV 库 一些图像处理算法是在本机端使用 OpenCV 实现的 我希望通过 JNI 从 java 中使用它们 我构建了一个 C DLL 项目来链接到
  • 根据环境选择C二进制文件

    我使用特定标志 Os O2 march native 及其组合 编译了代码 以便产生更快的执行时间 但我的问题是我并不总是在同一台机器上运行 因为在我的实验室中有几台不同的机器 有时我在 MacOS 或 Linux 中运行 这两种情况都具有