0

我在 C 程序中使用 apr,我包含 appr_error.h 头文件,但在构建过程中出现错误:

在函数“APR_DECLARE”中:错误:“apr_strerror”之前的预期声明说明符</p>

这是头文件中的违规行:

 /**
  * Return a human readable string describing the specified error.
  * @param statcode The error code the get a string for.
  * @param buf A buffer to hold the error string.
  * @param bufsize Size of the buffer to hold the string.
  */
 APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, 
                                  apr_size_t bufsize);

此头文件包含一个头文件,该头文件具有 APR_DECLARE 的#define 如下:

#if !defined(WIN32)
368 /**
369  * The public APR functions are declared with APR_DECLARE(), so they may
370  * use the most appropriate calling convention.  Public APR functions with 
371  * variable arguments must use APR_DECLARE_NONSTD().
372  *
373  * @deffunc APR_DECLARE(rettype) apr_func(args);
374  */
375 #define APR_DECLARE(type)            type

我对为什么收到此错误消息感到困惑-有什么想法吗?

4

1 回答 1

1

您的编译器标志可能已关闭,尤其是在哪里搜索包含文件。

apr 附带apr-config工具(或可能是 apr-1-config),您应该运行该工具并将其用于编译器和链接器标志

例如

# apr-config --cflags --includes
  -pthread -I/usr/include/apr-0

-pthread -I/usr/include/apr-0告诉我在编译使用 APR 的 C 代码时我必须通过。

这里有关于 pkg-config 的更多信息。

于 2012-07-06T12:42:07.627 回答