- 论坛徽章:
- 0
|
本帖最后由 jinyuliang 于 2010-05-21 22:06 编辑
纯学习目的,我给 Apache 注册了一个新的信号,现在在编写信号处理程序,编译时出现这样的错误:
- gcc -c -I../os/unix -I../include -DLINUX=2 -DUSE_HSREGEX `../apaci` http_main.c
- In file included from http_main.c:129:
- ../include/http_online_modification.h:57: 错误:expected ‘;’, ‘,’ or ‘)’ before ‘.’ token
- make[3]: *** [http_main.o] 错误 1
- make[2]: *** [subdirs] 错误 1
- make[2]: Leaving directory `/home/yuliang/atest/src'
- make[1]: *** [build-std] 错误 2
- make[1]: Leaving directory `/home/yuliang/atest'
- make: *** [build] 错误 2
复制代码
../include/http_online_modification.h:57: 错误:expected ‘;’, ‘,’ or ‘)’ before ‘.’ token
这个头文件里面有下面内容:
- typedef struct {
- ……
- } OM_option;
- ……
- static void OM_signal_handler(int signo, siginfo_t *sig_info, void *unused);
- ……
- void OM_generate_option_from_sigint(OM_option *option, int si_int);
复制代码
OM_signal_handler() 会创建一个 OM_option 类型的结构体,然后会调用 OM_generate_option_from_sigint() 并且把该结构体指针传递给这个函数,可是编译时走到头文件就出错了,而且是让我很茫然的 before 什么 "." 号,不知道遇到这种错误应该往那个方向去找原因,希望 CU 里牛 X 的各位大哥大姐指点……
============UPDATE=============
问题解决:
感谢 lenovo 的指点,通过命令 gcc -E http_online_modification.h 预处理之后,发现 si_int 是已经定义了的,而不是我希望的自己的变量 |
|