Se connecter / S'enregistrer
Votre question

gcc: Foundation/NSObject.h introuvable !

Tags :
  • G++
  • Programmation
Dernière réponse : dans Programmation
23 Août 2008 13:56:21

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...

Autres pages sur : gcc foundation nsobject introuvable

a b L Programmation
23 Août 2008 15:10:30

Tu peux montrer ton Makefile?
23 Août 2008 16:45:02

Je ne l'ai pas encore... en faite je fait:

gcc main.m par ex...
23 Août 2008 19:00:22

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 ?
a b L Programmation
23 Août 2008 20:07:57

il faut mettre les bibliothèques:
-Lchemin des bibliothèques
-lnom d'une bibliothèque
23 Août 2008 22:53:19

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 ;) 
9 Janvier 2011 23:01:40

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
a b L Programmation
9 Janvier 2011 23:55:07

C'est un problème sur le link.
J'imagine que c'est toi qui a défini "NomDeMaClasse". Donc, il faudrait que tu ajoute le code compilé de "NomDeMaClasse" lors du link (le gcc -o)
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS