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

时间:2013-08-12 15:57:12

标签: 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值的正斜杠和不同的引用技术,但它总是失败,显然是因为值的正斜杠。

2 个答案:

答案 0 :(得分:2)

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

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

(谢谢@mathk)

答案 1 :(得分:0)

DEFAULT_PIDLOG应该定义一个常量C字符串。尝试使用导出CFLAGS =" -DDEFAULT_PIDLOG = \\" /var/run/apache/apache.pid \\"