4

最近 APR をダウンロードし、自分のマシン (Ubuntu 12.0.4) で正常にビルドしました。プロジェクトに /path/to/apr_file_info.h を含め、コンパイルしようとすると、次のエラー メッセージが表示されました。

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) を正しく判別しないのはなぜですか? また、これを修正するにはどうすればよいですか?

4

3 に答える 3

3

Linux では、PATH_MAXで定義する必要があります<linux/limits.h>。APR の前に含めると、問題が解決するはずです。

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

標準ヘッダーヘッダーをインクルードすると、POSIX システムの関連するヘッダー<limits.h>もインクルードする必要があることに注意してください。<linux/limits.h>

私の記憶が正しければ、 Windows での同等物はMAX_PATHで定義されています。<windef.h>

于 2012-12-27T12:02:20.163 に答える
0

私は最近この問題に遭遇しました。Linux で使用する必要がある APR ヘッダーに、依存関係がある場合に linux/limits.h が直接含まれていないことに驚きました。確かに良いプログラミングの練習?

于 2014-09-25T09:05:02.423 に答える