【发布时间】:2021-02-26 00:50:46
【问题描述】:
我有一个基本的 C 程序:
#include <stdio.h>
int main() {
printf("Hello, world!\n");
}
当我在 Apple Silicon 设备上直接使用 cc 编译它时,它会生成一个 arm64 可执行文件:
% cc hello.c -o hello
% file hello
hello: Mach-O 64-bit executable arm64
% ./hello
Hello, world!
但是,当我通过 CMake 或 Ninja 等构建系统构建它时,它会生成 x86_64 二进制文件:
% ./my-build-system
% file hello
hello: Mach-O 64-bit executable x86_64
我已验证构建脚本正在运行的命令与我自己运行的命令相同。如果我复制并粘贴命令并自己运行它,生成的可执行文件又是 arm64。
【问题讨论】:
标签: c++ c macos native apple-silicon