macOS 使用 CMake 构建通用二进制 2

the*_*a19 3 c++ macos cmake

我将如何使用 CMake/Make 构建支持 Intel 和 Apple Silicon 的 Universal Binary 2?我在这里找到了一些文档 - https://developer.apple.com/documentation/xcode/building_a_universal_macos_binary - 但它使用了 XCode,我没有在我的项目中使用它。谢谢!

Dmi*_*try 5

要创建通用二进制集,请设置以下变量

CMAKE_OSX_ARCHITECTURES=arm64;x86_64
Run Code Online (Sandbox Code Playgroud)

如果您使用 CMake GUI,请按“添加条目”,然后将名称设置为 CMAKE_OSX_ARCHITECTURES, Type=String, Value=arm64;x86_64

然后配置->生成->制作。这是构建后您应该看到的输出(我的 exe 名称是 sprint_5)

>> file sprint_5          
sprint_5: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64]
sprint_5 (for architecture x86_64): Mach-O 64-bit executable x86_64
sprint_5 (for architecture arm64):  Mach-O 64-bit executable arm64
Run Code Online (Sandbox Code Playgroud)

  • 为了在`CMakeLists.txt`中设置它,您必须在`project()`之前声明变量,它是一个缓存变量,因此设置如下:`set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE字符串“”力)` (5认同)