2009-10-28 3 views
0

Je construis une application de fermeture à glissière, mais elle a une déclaration que je veux séparer dans un autre fichier (compress-fichier.m), mais seulement quand je sépare les fichiers j'ai eu une erreur quand la compilation avec une variable, voir:Séparer le code à organiser

[[email protected]:~/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 

voir aussi la ligne 7 du fichier main.m:

char outFileName[PATH_MAX] = { 0 }; 

Et voir quelques lignes de 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"); 

Je sais que c'est l'extension Objective-C, mais c'est seulement parce que quand je résoudrai ce problème, je devrai continuer le développement en Objective-C. Qu'est-ce que je dois faire pour corriger cela?

+1

Et votre question est –

Répondre

3

PATH_MAX n'est pas toujours défini en incluant <limits.h> Si vous voulez l'utiliser, vous devez probablement revenir sur le fragment:.

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

avez-vous même inclure limits.h dans votre programme principal Si non, vous devez le faire

1

Il semblerait que main.m a besoin de #include <limits.h>. Il semble également qu'il faudra inclure un en-tête décrivant compressFile (que je suppose que vous avez déplacé dans compress-file.m.)

+0

Il est déjà comme ça, dans les deux fichiers que j'ai inclus '? limits.h' –

+0

Et 'limits.h' définit réellement' PATH_MAX'? –

Questions connexes