M1 macOS上でLLVMをビルドして、C言語プログラム注で#include <stdio.h>
を使用しようとするとエラーになったりするのだが、これを回避する方法を色々と探していた。
結論から言うと以下のコマンドでビルドできる。
cmake -G Ninja \ -DCMAKE_OSX_ARCHITECTURES='arm64' \ -DDEFAULT_SYSROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/ \ -DCMAKE_BUILD_TYPE="Debug" \ -DLLVM_TARGETS_TO_BUILD="X86;RISCV;AArch64" \ -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi" ../llvm
肝となるのは、-DDEFAULT_SYSROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/
でmacOSのSDKの場所を指定すること。
これでmacOSでのLLVMデバッグビルド環境がだいぶ進んだ。
test.c
#include <stdio.h> int main () { int total = 0; for (int i = 1; i <= 10; i++) { total += i; } printf ("Total = %d\n", total); }
build/bin/clang x86_test.c
./a.out Total = 55