compilation source objective-c avec gcc

mulot

Membre confirmé
12 Février 2003
19
0
J'ai fait un tout petit programme en objective-c nommé foo.m.
Au début il faisait juste un return 0; et ne posait aucun problème lors de sa compilation gcc
Après quoi j'ai rajouté un NSLog(@"toto"); et là lors de la compilation au linkage avec 'ld' il me rejète avec une erreur comme quoi il ne connait pas le symbole __NSLog.

J'ai essayé de rajouter un path (-L) vers l'endroit ou il me semblait y avoir la Lib Foundation mais sans succès.

Mon but en fait était de compiler un prog cocoa avec gcc directement sans passer par le project builder.
Est ce que quelqu'un aurait déjà une expérience la dessus ?
 
Ça doit venir du fait que tu ne link aucun framework avec ton fichier. Il faudrait en effet compiler contre le framework Foundation minimum. Enfin je te dis àa mais la ligne de commande j'aime suffisament pas ça pour m'en passer sans problème. Une idée cerait de regarder l'output de Project Builder quand il compile, comme ça t'aura les commandes qu'il utilise et les paramètres.
 
et as tu une idée de comment l'on fait avec gcc pour linker avec la lib foundation, j'ai essayé des gcc -lObjC sans succès.
Sinon j'avais regardé le output de project builder mais il n'affiche pas les commandes gcc même en mode verbose, à moins que je n'aye pas regardé au bon endroit.

merci pour ton aide.
 
En tapant "man gcc" dans un terminal, je viens d'y lire ceci :

</font><blockquote><font class="small">En r&eacute;ponse &agrave;:</font><hr />
Note that you must link with the library libobjc.a to make an Objective-C program work.

[/QUOTE]

Peut-être que ça peut t'aider à résoudre ton problème.
 
De ce que j'ai compris le appkit n'est nécessaire que pour la programmation d'interface graphique.
Or mon prog de test ne contient que un NSLog et aucun appel de la librairy graphique.

Peut être me manque t'il un linkage avec le framework cocoa en effet. Mais alors comment fais je ? un -lcocoa (je ne peux pas tester en ce moment).

Grand jeux concourt voici mon programme de souvenir, le gagnant est celui qui arrive à le compiler avec gcc :

#import &lt;Foundation/Foundation.h&gt;

int main(int argc, char **argv)
{
NSLog(@"toto");
return 0;
}
 
Le mieux, tu fais ca avec Project Builder et tu regardes dans la fenetre Build:Terminal de PB. Il y a exactement la commande qu'il a lance au terminal.

PB n'est qu'une interface de gcc.


 
j'oubliais:

pour inclure ce framework au niveau de gcc, tu ajoutes l'argument:
-framework Foundation
tout simplement.

j'ai gagné quoi à ton concours?
laugh.gif