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

C++ macOS使用CMake构建通用二进制2,c++,macos,cmake,C++,Macos,Cmake,如何使用CMake/Make构建一个支持Intel和Apple Silicon的通用二进制2? 我在这里找到了一些文档--但它使用的是XCode,我在我的项目中没有使用它。 谢谢 要创建通用二进制文件,请设置以下变量 CMAKE_OSX_ARCHITECTURES=arm64;x86_64 如果您使用CMake GUI,请按Add Entry,然后将名称设置为CMake_OSX_ARCHITECTURES,Type=String,Value=arm64;x86_64 然后配置->生成->生成。

如何使用CMake/Make构建一个支持Intel和Apple Silicon的通用二进制2? 我在这里找到了一些文档--但它使用的是XCode,我在我的项目中没有使用它。
谢谢

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

CMAKE_OSX_ARCHITECTURES=arm64;x86_64
如果您使用CMake GUI,请按Add Entry,然后将名称设置为CMake_OSX_ARCHITECTURES,Type=String,Value=arm64;x86_64

然后配置->生成->生成。这是生成exe后应该看到的输出,我的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

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

CMAKE_OSX_ARCHITECTURES=arm64;x86_64
如果您使用CMake GUI,请按Add Entry,然后将名称设置为CMake_OSX_ARCHITECTURES,Type=String,Value=arm64;x86_64

然后配置->生成->生成。这是生成exe后应该看到的输出,我的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

医生们似乎在谈论如何做到这一点。我不知道cmake,但如果您构建一个Makefile,它几乎可以引导您完成它。您必须为每个目标应用程序构建单独的二进制文件,然后使用lipo工具合并它们。你链接的文档讨论了所有这些,这些文档似乎讨论了如何做到这一点。我不知道cmake,但如果您构建一个Makefile,它几乎可以引导您完成它。您必须为每个目标应用程序构建单独的二进制文件,然后使用lipo工具合并它们。你联系的医生谈到了这一切。