【发布时间】:2013-03-13 12:51:55
【问题描述】:
我正在寻找与 gcc 的 -D 标志等效的 LLVM(或 clang),它可以在命令行中启用宏定义。
任何指针都会很棒。
【问题讨论】:
我正在寻找与 gcc 的 -D 标志等效的 LLVM(或 clang),它可以在命令行中启用宏定义。
任何指针都会很棒。
【问题讨论】:
来自clang --cc1 --help:
...
-D <macro>=<value> Define <macro> to <value> (or 1 if <value> omitted)
...
根据经验,假设 Clang 模拟 GCC,除非另有证明!
【讨论】:
clang -cc1 --help 时我看不到那个选项。
默认的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;
}
所以如果你想替换 gcc,只需调用 clang。 clang -cc1 调用 clang 的前端组件,而不是通用编译器驱动程序。
【讨论】:
make cc=/path/to/clang。我希望这是正确的。