2012-12-27 25 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。良好的編程習慣肯定?

相關問題