LLVM等效于命令行上的gcc -D宏定义

shr*_*hrm 16 llvm clang llvm-gcc

我正在寻找相当于gcc的-D标志的LLVM(或clang),它在命令行启用宏定义.

任何指针都会很棒.

Oli*_*rth 24

来自clang --cc1 --help:

...
-D <macro>              Predefine the specified macro
...
Run Code Online (Sandbox Code Playgroud)

根据经验,假设Clang模仿GCC,除非另有证明!


Eli*_*sky 5

默认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;
}
Run Code Online (Sandbox Code Playgroud)

因此,如果您想要替换gcc,只需调用即可clang.clang -cc1调用clang的前端组件,而不是通用编译器驱动程序.