- 主题:macOS M1上如何交叉编译针对intel的二进制?
查了一下资料,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.*
调研了两天,彻底搞定了用高版本macOS给低版本的macOS编译二进制的问题,顺带搞了一下intel上的macOS虚拟机,挺好用的。
https://www.cnblogs.com/z16166/p/16861268.html
arm到intel的交叉编译就用不上了。
--
修改:z16166 FROM 114.241.227.*
FROM 114.241.227.*
cnblogs 比csdn好用,调研结果记录分享,给你点赞。
--
FROM 124.126.202.*
cnblogs不上首页的话,浏览量很小,才可怜的几十。
2017年在看雪论坛发的几个专栏帖子,居然每个都有百万的浏览量,但无人评论(要注册账号才能评论),有点奇怪,不知道是不是bot搞的。
回头试试windows上用vmware安装Ventura(Big Sur和Monterey已经没问题),总结一下macOS的虚拟机安装,主要是最新的unlocker的下载。
【 在 xunery 的大作中提到: 】
: cnblogs 比csdn好用,调研结果记录分享,给你点赞。
--
FROM 114.241.227.*
感觉看雪得浏览量不该这么大,我是看雪十几年得用户,那边也就是一小撮人吧
csdn太恶心人了,如果我搜,有别的网站得就不点csdn得连接,老弹窗还不让复制
国内程序员确实缺一个能交流技术得地方,不过话说回来,现在互联网大行其道,哪有什么技术,用不上也就没有了
【 在 z16166 的大作中提到: 】
: cnblogs不上首页的话,浏览量很小,才可怜的几十。
: 2017年在看雪论坛发的几个专栏帖子,居然每个都有百万的浏览量,但无人评论(要注册账号才能评论),有点奇怪,不知道是不是bot搞的。
: 回头试试windows上用vmware安装Ventura(Big Sur和Monterey已经没问题),总结一下macOS的虚拟机安装,主要是最新的unlocker的下载。
: ...................
--
FROM 124.126.202.*
上SO发帖子就行了
csdn很多年不去了,都是恰饭的东西,资源也都是跟百度文库一样,靠用户上传的盗版内容赚钱。
6月份在看雪发的一个专栏帖子,有1.5万浏览量(不知有没注水),比cnblogs强太多了
想玩的话,自己用wordpress搭个blog啥的也不是难事
【 在 xunery 的大作中提到: 】
: 感觉看雪得浏览量不该这么大,我是看雪十几年得用户,那边也就是一小撮人吧
: csdn太恶心人了,如果我搜,有别的网站得就不点csdn得连接,老弹窗还不让复制
: 国内程序员确实缺一个能交流技术得地方,不过话说回来,现在互联网大行其道,哪有什么技术,用不上也就没有了
: ...................
--
修改:z16166 FROM 114.241.227.*
FROM 114.241.227.*
为啥不整个docker x86来编译?
【 在 z16166 的大作中提到: 】
: 查了一下资料,xcode新版能编译"arm64 + x86_64"二合一的universal binary,用
: lipo可以查看产物信息。
: 但我不是用xcode IDE,是用macos自带的clang直接编译(调用xcode的命令行编译工具
: 了),而且可能要支持catalina (macOS 10.15)或者big sur。
: 有人给的办法,没还没来得及试:
: ...................
--
FROM 119.139.198.*
一时没想到。谢谢提醒,这也是个好办法
除了编译,还有测试的问题,要在不同的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.*
尝试下 docker 然后用dockerbuild 各种?
【 在 z16166 的大作中提到: 】
: 查了一下资料,xcode新版能编译"arm64 + x86_64"二合一的universal binary,用lipo可以查看产物信息。
: 但我不是用xcode IDE,是用macos自带的clang直接编译(调用xcode的命令行编译工具了),而且可能要支持catalina (macOS 10.15)或者big sur。
: 有人给的办法,没还没来得及试:
: ...................
--
FROM 111.196.63.*
docker on mac那不就是虚拟机么
何必还套一层docker
只用虚拟机不就得了
【 在 lixunhuansk 的大作中提到: 】
: 尝试下 docker 然后用dockerbuild 各种?
--
FROM 222.71.112.*