c - 如何定义编译时 -D 宏 (Apache 2.2)?

标签 c gcc compiler-construction apache2 libtool

在编译 Apache 源代码时,我已经能够很好地定义一个宏:

# export CFLAGS=" -DSINGLE_LISTEN_UNSERIALIZED_ACCEPT"   // OR even:
# export CFLAGS=" -DSINGLE_LISTEN_UNSERIALIZED_ACCEPT=1"

...就像一个魅力,但是每次我尝试设置:

# export CFLAGS=" -DDEFAULT_PIDLOG=/var/run/apache/apache.pid"

我在 make 期间收到此错误:

prefork.c: In function ‘prefork_pre_config’:
prefork.c:1340:20: error: expected expression before ‘/’ token
make[4]: *** [prefork.lo] Error 1

因此,我尝试转义 DEFAULT_PIDLOG 值的正斜杠和不同的引用技术,但它总是失败,显然是因为值中的正斜杠。

最佳答案

似乎 DEFAULT_PIDLOG 应该定义一个常量 C 字符串。尝试使用

export CFLAGS="-DDEFAULT_PIDLOG=\\\"/var/run/apache/apache.pid\\\""

(感谢@mathk)

关于c - 如何定义编译时 -D 宏 (Apache 2.2)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18191471/

相关文章:

c - 我怎样才能组装这个程序

c - 为什么访问非法指针的程序不会崩溃?

c++ - c++20 中是否不推荐使用 volatile 限定符?

c++ - cout 语句如何影响编写的代码的 O/P?

c++ - 我可以明确地告诉函数不接受指向非堆变量的指针吗?

scala - Scala 中的 Brainfuck 编译器

编译器设计代码来解析 goto 和 block

c - 具有两个指针的数组的大小

c - ANSI C(ISO C90): Can scanf read/accept an unsigned char?

c++ - LD_LIBRARY_PATH 不工作,而 LD_PRELOAD 工作正常