我正在研究这个非常简单的代码部分,但不知何故构建错误对我来说很奇怪。
我在项目中有这些文件:main.c
,http_request.h
,http_request.c
;还有一个简单的Makefile
。
1。 http_request.h
/* STRUCTURES */
struct http_param {
char key[MAX_BUFFER];
char *value;
};
struct http_request {
int size;
struct http_param data[MAX_PARAM];
};
/* FUNCTIONS */
int parse_http_request(apr_pool_t *pool, const char *args, struct http_request *req); /* (A) */
2。 http_request.c
#include <http_request.h>
...// something else goes here, it's fine
int
parse_http_request(apr_pool_t *pool, const char *args, struct http_request *req) /* (B) */
{
第3。生成文件
-I$(PROJECT_DIR)/include
此目录包含http_request.h
。
然后我构建,它引发了这个错误:
/project/src/http_request.c:14: warning: 'struct http_request' declared inside parameter list
/project/src/http_request.c:14: warning: its scope is only this definition or declaration, which is probably not what you want
/project/src/http_request.c: In function 'parse_http_request':
我在上面的源代码中提到错误指向(A)
和(B)
。
任何人都可以帮忙找出问题所在吗? 感谢。
答案 0 :(得分:2)
我怀疑,看到你使用apr_pool_t,你的include路径中也包含了apache。 apache还提供了一个名为http_request.h的文件,并且该文件包含在内,而不是您拥有的文件。
答案 1 :(得分:0)
使用
#include "http_request.h"
而不是
#include <http_request.h>