سؤال

أنا بناء سحاب التطبيق ، ولكن لديها إعلان أريد أن منفصل في ملف آخر (ضغط الملف.م) ، ولكن فقط عندما فصل الملفات لدي خطأ عند التحويل البرمجي مع متغير ، انظر في ذلك:

[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 الرئيسية.م الملف:

char outFileName[PATH_MAX] = { 0 };

ونرى بعض خطوط ضغط الملف.م:

#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");

أعرف أن هذا هو الهدف-C التمديد ، ولكن هذا فقط لأنه عندما حل هذه المشكلة سوف تحتاج إلى مواصلة التنمية في الهدف-C. ماذا يجب أن أفعل لتصحيح هذا ؟

هل كانت مفيدة؟

المحلول

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 في الرئيسية الخاصة بك ؟ إذا لا تحتاج إلى القيام بذلك.

نصائح أخرى

يبدو main.m يحتاج إلى #include <limits.h>.كما يبدو أنها سوف تحتاج إلى تضمين رأس واصفا compressFile (والتي أعتقد أنك انتقلت إلى compress-file.m.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top