LLVM-эквивалент определения макроса gcc -D в командной строке Я ищу эквивалент gcc -D LLVM (или clang), который позволяет определять макросы в командной строке. Любые указатели будут замечательными. Ответ 1 От clang --cc1 --help: ... -D <macro> Predefine the specified macro ... Как правило, предположим, что Clang эмулирует GCC, если не доказано обратное! Ответ 2 По умолчанию вызов 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 вызывает компонент front-end clang, а не общий драйвер компилятора.
Ответ 1 От clang --cc1 --help: ... -D <macro> Predefine the specified macro ... Как правило, предположим, что Clang эмулирует GCC, если не доказано обратное!
Ответ 2 По умолчанию вызов 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 вызывает компонент front-end clang, а не общий драйвер компилятора.