Run macOS Terminal command with Rosetta
On macOS, Terminal commands can be specified to run with Rosetta using the arch command.
This is useful for running or testing x86_64 software on Apple Silicon Macs.
See “man arch” for more details.
arch -x86_64 <command>For example to run cmake with Rosetta:
arch -x86_64 cmake -B buildThe CMake variable CMAKE_SYSTEM_PROCESSOR or simply
arch -x86_64 uname -mcan be used to check the architecture of the current process.
Universal or x86_64 binaries required
When using
arch -x86_64 <command>to run a program, the program must be a universal binary or an x86_64 binary. If not, the error message will be similar to:
arch: posix_spawnp: <command>: Bad CPU type in executable
For programs like CMake that are designed for cross-compiling, command CMake to build for x86_64 by setting the
CMAKE_OSX_ARCHITECTURES
variable to x86_64:
cmake -B build -DCMAKE_OSX_ARCHITECTURES=x86_64
cmake --build build