Se connecter avec
S'enregistrer | Connectez-vous

gcc: Foundation/NSObject.h introuvable !

Dernière réponse : dans Programmation

Salut,

J'ai un problème:

J'ai installé GNUstep sur Windows (avec MinGW) afin de pouvoir compiler de l'Objective-C...

Lorsqu'il s'agit de compiler un seul fichier main.m tout simple il n'y a pas de problème, mais dès que j'importe une libraire (Foundation) ça foire:

=> ça donne: "Foundation/NSObject.h: No such file or directory"

Alors j'ai remplacé dans mon code le:
  1. #import <Foundation/NSObject.h>

par
  1. #import <C:/GNUstep/GNUstep/System/Library/Headers/Foundation/NSObject.h>

L'erreur disparait mais il y en a plein d'autres qui arrivent (car dans les headers les chemins ne sont pas complets)

Alors ma question est: comment spécifier que l'on veut les headers qui se trouvent dans la librairie Foundation ? (j'ai essayé avec l'option -framework, mais il ne la reconnait pas...)

Voilà j'espère que vous pourrez m'aider...
Lassé par la pub ? Créez un compte

Ok... ça a un peu évolué... Maintenant ça me fait des:

"undefined reference to 'objc_get_class'" et

"undefined reference to 'objc_msg_lookup'"

et quelques autres comme ça...
Ma commande:
"gcc -I /c/GNUstep/GNUstep/System/Library/Headers main.m"

Une idée ?

Voilà c'est ok.

Enfaite il y a plusieurs options à préciser:

  1. gcc -o Testing main.m -I /GNUstep/System/Library/Headers -L /GNUstep/System/Library/Libraries -lobjc -lgnustep-base

-o option: Indique l'output file name
-I option: Indique une biblitothèque précise à inclure
-L option: Indique les bibliothèques de base à inclure
-lobjc option: -l précise un paramètre de link, donc -lobjc précise que l'on compile de l'Objective-C
-lgnustep-base: Indique l'utilisation de gnustep-base qui est obligatoire

Merci pour ton aide ;) 

Bonjour ,j'ai le meme probleme que vous, quand je compile avec GNUstep ,il m'envoie un message:"undefined reference to __objc_class_name_NonDeMaClasse" et j'ai changé comme le votre mais toujours meme message.
Votre aide sera binvenue.
Merci beaucoup et au revoir
Lassé par la pub ? Créez un compte
Tom's guide dans le monde