2012-12-27 27 views
3

我最近下载了APR并成功将其构建在我的机器上(Ubuntu 12.0.4)。 我包括/path/to/apr_file_info.h到我的项目,当我尝试编译,我得到了以下错误消息:与APR编译。错误消息:“您的平台没有对APR_PATH_MAX做出决定”

no decision has been made on APR_PATH_MAX for your platform

在调查的头文件(apr.h),我发现下面的指令负责:

#if defined(PATH_MAX) 
#define APR_PATH_MAX  PATH_MAX 
#elif defined(_POSIX_PATH_MAX) 
#define APR_PATH_MAX  _POSIX_PATH_MAX 
#else 
#error no decision has been made on APR_PATH_MAX for your platform 
#endif 

的(幼稚?)解决方案将是确定这些变量 - 但我不知道是否有将是使用了错误的大小任何讨厌的影响 - 我不是确保为编译器指令定义正确的大小。

为什么./configure没有正确确定我的平台(Ubuntu 12.0.4),我该如何解决这个问题?

回答

2

在Linux上,应该在<linux/limits.h>中定义PATH_MAX。 APR之前包括它,它应该解决您的问题,即包括标准头<limits.h>标题中还应包括<linux/limits.h>或POSIX系统相关的头

#include <linux/limits.h> 
#include <path/to/apr_file_info.h> 

注意。

如果我没有记错的话,Windows上的等价物将是MAX_PATH,在<windef.h>中定义。

0

我最近遇到这个问题。令人惊讶的是,需要在Linux上使用的APR标头如果是依赖项,则不会直接包含linux/limits.h。良好的编程习惯肯定?

相关问题