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

问题描述 投票:0回答:2

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

c gcc apache2 libtool
2个回答
2
投票

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

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

(感谢@mathk)


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.