如何使用标准Apple版本的clang从命令行在M1Mac上构建英特尔二进制文件? [英] How to build an Intel binary on an M1 Mac from the command line with the standard Apple version of clang?

查看:19
本文介绍了如何使用标准Apple版本的clang从命令行在M1Mac上构建英特尔二进制文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在玩我的M1 MacBook Air上的一些C代码,并查看了使用各种优化级别生成的程序集。

我使用最基本的命令从命令行构建一个C文件:

cc foo.c -o foo

我应该使用哪个开关来构建英特尔二进制文件而不是ARM?英特尔®32位与64位是否有不同的优势?也许甚至是更老的CPU指令集?这很难在谷歌上搜索到,但我对苹果的生态系统还是个新手。

胖二进制文件怎么办?如何从命令行构建同时包含Intel和ARM代码的单个二进制文件?

(就本问题而言,我只对我可以在命令行上做什么感兴趣。如果我需要设置XCode项目或环境变量,那么我会接受这样的回答:您不能仅使用命令行来完成。)

推荐答案

自Catalina起,英特尔32位无法在MacOS上执行。自2006年以来,除了最初搭载酷睿单核处理器的英特尔Mac mini以外,所有Mac电脑都支持64位。

英特尔: clang -o myTool-x86_64 -mmacosx-version-min=10.15 -arch x86_64 main.c

ARM64: clang -o myTool-arm64 -mmacosx-version-min=10.15 -arch arm64 main.c

胖二进制: lipo myTool-x86_64 myTool-arm64 -create -output myTool

这篇关于如何使用标准Apple版本的clang从命令行在M1Mac上构建英特尔二进制文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆