奇怪的makefile构建错误

时间:2012-10-23 09:45:45

标签: c struct

我正在研究这个非常简单的代码部分,但不知何故构建错误对我来说很奇怪。 我在项目中有这些文件:main.chttp_request.hhttp_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)

任何人都可以帮忙找出问题所在吗? 感谢。

2 个答案:

答案 0 :(得分:2)

我怀疑,看到你使用apr_pool_t,你的include路径中也包含了apache。 apache还提供了一个名为http_request.h的文件,并且该文件包含在内,而不是您拥有的文件。

答案 1 :(得分:0)

使用

#include "http_request.h"

而不是

#include <http_request.h>