0

私はジッパーアプリケーションを構築していますが、それを別のファイル(compress-file.m)に分割したいという宣言がありますが、変数でコンパイルするときにエラーが発生したファイルを分割するときだけ、それを参照してください:

[ubuntu@eeepc:~/Desktop] make
This is gnustep-make 2.0.2. Type 'make print-gnustep-make-help' for help.
Making all for app LeafZip...
 Creating LeafZip.app/....
 Compiling file main.m ...
main.m: In function ‘main’:
main.m:7: error: ‘PATH_MAX’ undeclared (first use in this function)
main.m:7: error: (Each undeclared identifier is reported only once
main.m:7: error: for each function it appears in.)
main.m:12: warning: implicit declaration of function ‘compressFile’
main.m:7: warning: unused variable ‘outFileName’
make[1]: *** [obj/main.o] Error 1
make: *** [LeafZip.all.app.variables] Error 2

main.m ファイルの 7 行目も参照してください。

char outFileName[PATH_MAX] = { 0 };

そして、compress-file.m のいくつかの行を参照してください。

#include <stdio.h>
#include <zlib.h>
#include <limits.h>

/* Buffer to hold data read */
char buf[BUFSIZ] = { 0 };
size_t bytes_read = 0;
gzFile *out = gzopen(outFileName, "wb");

それが Objective-C の拡張機能であることは知っていますが、それは、この問題を解決したときに、Objective-C で開発を続ける必要があるからです。これを修正するにはどうすればよいですか?

4

2 に答える 2

3

PATH_MAX は、 を含めることによって常に定義されるわけではありません<limits.h>。使用したい場合は、おそらくフラグメントにフォールバックする必要があります。

#include <limits.h>
#ifndef PATH_MAX
#define PATH_MAX _POSIX_PATH_MAX   /* Or possibly _XOPEN_PATH_MAX */
#endif /* PATH_MAX */

メインプログラムにも含めlimits.hましたか?そうでない場合は、そうする必要があります。

于 2009-10-28T20:38:56.940 に答える
1

main.mする必要があるよう#include <limits.h>です。また、compressFile を説明するヘッダーを含める必要があるようです ( compress-file.m.

于 2009-10-28T20:37:22.780 に答える