水木社区手机版
首页
|版面-编程技术(Programming)|
新版wap站已上线
返回
1/1
|
转到
主题:macOS M1上如何交叉编译针对intel的二进制?
楼主
|
z16166
|
2022-10-31 23:34:12
|
展开
查了一下资料,xcode新版能编译"arm64 + x86_64"二合一的universal binary,用lipo可以查看产物信息。
但我不是用xcode IDE,是用macos自带的clang直接编译(调用xcode的命令行编译工具了),而且可能要支持catalina (macOS 10.15)或者big sur。
有人给的办法,没还没来得及试:
运行相关的编译命令比如XXX之前设置arch,
例如:arch -x86_64 XXX
或者arch -x86_64 zsh开一个rosetta shell。
我这个工程是有vcpkg.json的,vcpkg的包都装到工程目录下。
https://stackoverflow.com/questions/64882584/how-to-run-the-homebrew-installer-under-rosetta-2-on-m1-macbook
--
FROM 114.241.227.*
1楼
|
z16166
|
2022-11-04 16:46:37
|
展开
调研了两天,彻底搞定了用高版本macOS给低版本的macOS编译二进制的问题,顺带搞了一下intel上的macOS虚拟机,挺好用的。
https://www.cnblogs.com/z16166/p/16861268.html
arm到intel的交叉编译就用不上了。
--
修改:z16166 FROM 114.241.227.*
FROM 114.241.227.*
3楼
|
z16166
|
2022-11-08 12:01:08
|
展开
cnblogs不上首页的话,浏览量很小,才可怜的几十。
2017年在看雪论坛发的几个专栏帖子,居然每个都有百万的浏览量,但无人评论(要注册账号才能评论),有点奇怪,不知道是不是bot搞的。
回头试试windows上用vmware安装Ventura(Big Sur和Monterey已经没问题),总结一下macOS的虚拟机安装,主要是最新的unlocker的下载。
【 在 xunery 的大作中提到: 】
: cnblogs 比csdn好用,调研结果记录分享,给你点赞。
--
FROM 114.241.227.*
5楼
|
z16166
|
2022-11-08 12:46:10
|
展开
上SO发帖子就行了
csdn很多年不去了,都是恰饭的东西,资源也都是跟百度文库一样,靠用户上传的盗版内容赚钱。
6月份在看雪发的一个专栏帖子,有1.5万浏览量(不知有没注水),比cnblogs强太多了
想玩的话,自己用wordpress搭个blog啥的也不是难事
【 在 xunery 的大作中提到: 】
: 感觉看雪得浏览量不该这么大,我是看雪十几年得用户,那边也就是一小撮人吧
: csdn太恶心人了,如果我搜,有别的网站得就不点csdn得连接,老弹窗还不让复制
: 国内程序员确实缺一个能交流技术得地方,不过话说回来,现在互联网大行其道,哪有什么技术,用不上也就没有了
: ...................
--
修改:z16166 FROM 114.241.227.*
FROM 114.241.227.*
7楼
|
z16166
|
2022-11-08 14:37:57
|
展开
一时没想到。谢谢提醒,这也是个好办法
除了编译,还有测试的问题,要在不同的macOS版本(intel/arm的10.15 ~ 13.0)上测试编译产物
不过,xcode既然能输出universal binary,那么一定是可以交叉编译的。
这有个例子:
For example, to build for x86_64 on an M1 Mac (arm64):
export TARGET="x86_64-apple-darwin"
export CFLAGS="$CFLAGS --target=$TARGET"
export CXXFLAGS="$CXXFLAGS --target=$TARGET"
export SDKROOT="$(xcrun --sdk macosx --show-sdk-path)"
cd mycode
mkdir build
cd build
cmake -DCMAKE_C_COMPILER_TARGET="$TARGET" -DCMAKE_CXX_COMPILER_TARGET="$TARGET" -DCMAKE_SYSTEM_PROCESSOR="x86_64" -DCMAKE_SYSTEM_NAME="Darwin" -DCMAKE_C_FLAGS="$CFLAGS" -DCMAKE_CXX_FLAGS="$CXXFLAGS" ..
https://developer.apple.com/forums/thread/706653
【 在 qlogic 的大作中提到: 】
: 为啥不整个docker x86来编译?
:
--
修改:z16166 FROM 114.241.227.*
FROM 114.241.227.*
17楼
|
z16166
|
2022-11-14 13:04:47
|
展开
发一下intel平台vmware中安装macOS x86虚拟机的链接,需要的自取。
目前vmware的windows/linux版本的guest还不支持Ventura,其他的都支持。
big sur等的iso从这里下的:
https://sysin.org/blog/macOS-Big-Sur-boot-iso/
unlocker 4.2.3
https://github.com/DrDonk/unlocker/releases
AMD cpu的*.vmx要改的内容:
https://github.com/DrDonk/unlocker/issues/33
而且AMD cpu的话要关闭hyper-v,不然这个cpuid的override不生效,就跑不了。
ARM平台要搞虚拟机的话,就用PD好了。
--
修改:z16166 FROM 114.241.227.*
FROM 114.241.227.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版