macos - 如何构建一个可以跨 macOS 版本的 Go 应用程序?
问题描述
这是我最近创建的 macOS 应用程序:https
://github.com/evilt/macmineable-release
,这是我面临的问题:https ://github.com/evilt/macmineable-release/issues/18
我在我的机器上构建了应用程序,它可以在任何 BigSur 设备上正常运行,甚至是 M1 设备,但不能在 Catalina(10.15) 上运行。
所以我想要的是构建一个可以使用单个应用程序在多 macOS 版本上运行的版本。
非常感谢您的任何建议!
更新
我的设备是 MacBook Pro 2015,Intel I5 芯片,Big Sur 11.5.2。
我在我的设备上构建了这个应用程序,它可以正常运行:
- 我的设备
- MacBook 12 英寸 Big Sur 11.0
- 其他 M1 设备(Big Sur 11.0 或更高版本)
但无法在 MacBook Pro Intel I7 Catalina 10.15.7 上运行。这里的问题。
这是我所知道的。
解决方案
您需要CC
在构建期间更改 compile go 使用。
go env CC
clang
最有可能使用的版本/usr/bin/clang
如果你安装了 Xcode - 或者真的只是Command Line Tools
你可以看到最近几个主要版本的各种版本,例如:
$ find /Library/Developer/CommandLineTools -name clang
/Library/Developer/CommandLineTools/usr/bin/clang
/Library/Developer/CommandLineTools/usr/lib/clang
/Library/Developer/CommandLineTools/usr/lib/swift/clang
/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/A/lib/clang
/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks/OpenCL.framework/Versions/A/lib/clang
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/A/lib/clang
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenCL.framework/Versions/A/lib/clang
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/A/lib/clang
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/OpenCL.framework/Versions/A/lib/clang
因此,要针对较旧的 SDK 进行构建MaxOSX10.15
,请设置CC
为您需要的显式版本,go build
如下所示:
CC=/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/OpenCL.framework/Versions/A/lib/clang go build
推荐阅读
- sql - 尝试在 BQ 中执行每小时运行一次的查询
- javascript - 将原型转换为 ES6 类
- sql - 同步 YOY 报告的每周日期
- android - 如何将我的颤振应用程序的数据导出到 Word 文档?
- java - Google HttpResponse - 使用重试逻辑时如何更新标头
- awk - 重复行块的总和,如果不重复,则加 1 并计算差异
- typescript - 练习 机器人名字练习总是超时
- javascript - 从 Cognito 登录端点获取 JSON 响应
- java - 当我从 xlsx 读取到 java 时,为什么日期字段会混乱?
- c# - 如何在 Winform 应用程序上的 ms webview2 中播放音频?