Разделение кода будет организовано - PullRequest
0 голосов
/ 28 октября 2009

Я создаю приложение на молнии, но у него есть объявление, что я хочу разделить его в другом файле (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

Также смотрите строку 7 файла main.m:

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. Что мне нужно сделать, чтобы исправить это?

Ответы [ 2 ]

3 голосов
/ 28 октября 2009

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 в основную программу? Если нет, то вам нужно это сделать.

1 голос
/ 28 октября 2009

Похоже, main.m нужно #include <limits.h>. Также кажется, что нужно будет включить заголовок, описывающий compressFile (который, я думаю, вы переместили в compress-file.m.

...