我正在寻找LLVM(或clang)的相当于gcc的-D标志的东西,它可以在命令行上启用宏定义。
任何指针都将是很好的。
任何指针都将是很好的。
从 clang --cc1 --help
命令中得知:
...
-D <macro>=<value> Define <macro> to <value> (or 1 if <value> omitted)
...
作为经验法则,假定Clang在模拟GCC,除非有证据证明相反!
默认的 clang
调用是一个类似于 gcc 的编译器驱动程序,支持和 gcc 相同的选项,包括 -D
:
: ~$ cat test/z.c
int foo() {
return FOOBAR;
}
: ~$ clang -DFOOBAR -E -c test/z.c
# 1 "test/z.c"
# 1 "<built-in>" 1
# 1 "<built-in>" 3
# 154 "<built-in>" 3
# 1 "<command line>" 1
# 1 "<built-in>" 2
# 1 "test/z.c" 2
int foo() {
return 1;
}
clang
。 clang -cc1
调用的是clang的前端组件,而不是通用的编译器驱动程序。make cc=/path/to/clang
。我希望这是正确的。 - shrm