gpt4 book ai didi

c++ - 根据环境选择C二进制

转载 作者:太空宇宙 更新时间:2023-11-04 01:02:51 25 4
gpt4 key购买 nike

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

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

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

提前致谢。

最佳答案

你说的是fat binary(不是FAT,首字母缩写词)。来自维基百科 1 :

A fat binary (or multiarchitecture binary) is a computer executable program which has been expanded (or "fattened") with code native to multiple instruction sets which can consequently be run on multiple processor types. This results in a file larger than a normal one-architecture binary file, thus the name.

乍一看,似乎没有太多支持它(有关更多信息,请参阅 Programmer StackExchange 的 this question)。 Apple 在从 PowerPC 过渡到 Intel 时简要地实现了这一点,但此后似乎并没有对其进行太多探索。

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

关于c++ - 根据环境选择C二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31814963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com