inclure un fichier C
NseaProtector
Membre
Bonjour,
Est-il possible d'inclure un fichier C dans un programme en objectiv-C , je pensais que ça ne poserait pas de problème vu que l'obj-c est une surcouche du c, non ? J'ai ajouté le fichier à mon projet mais si je met
#import <monFichier.c>
Le compilateur me dit "no such file or directory", alors qu'il est bien dans le dossier de mon projet.
Je me demande bien quoi qu'il me veut ???
Est-il possible d'inclure un fichier C dans un programme en objectiv-C , je pensais que ça ne poserait pas de problème vu que l'obj-c est une surcouche du c, non ? J'ai ajouté le fichier à mon projet mais si je met
#import <monFichier.c>
Le compilateur me dit "no such file or directory", alors qu'il est bien dans le dossier de mon projet.
Je me demande bien quoi qu'il me veut ???
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Et regarde la doc sur l'inclusion des fichiers en C, pour connaà®tre la différence entre "" et <>
Désolé pour ma question.
1) Le fait que le fichier soit dans ton répertoire de projet ou pas est une chose, mais il faut mieux l'ajouter au projet (Project -> Add Files, ou plus simplement faire glisser-déposer le fichier dans la partie "Groups & Files" de ton projet Xcode)
2) Il est très peu courant d'inclure un fichier ".c", au même titre qu'il est très peu courant voire déconseillé d'inclure un fichier ".m". Tout comme les ".m", les fichiers ".c" sont en général accompagnés d'un headers, à savoir un fichier ".h" qui décrit juste les fonctions disponibles (mais pas leur implémentation, qui elle est dans le ".c")
L'idéal est donc que (1) tu insères ton .c et le .h correspondant dans ton projet et (2) que tu fasses un [tt]#import "monFichier.h"[/tt] bien avec des guillemets (car fichier local et pas système) et bien le .h et non le .c de préférence !!
J'ai bien fait add File, puis un copier coller du code en C, il s'agit du simple exemple USB du IOKit car le projet en question doit envoyer des données vers une interface DMX512.
Il n'y a pas de .h dans le simple exemple et pour le moment je suis aux essais et je ne compte pas éclater le pilote dans un .h et .c, je le ferais au moment importun.
Ensuite j'ai renommé le main() du fichier c, pour l'appeler depuis le main() du .m
C'est juste que je n'ai pas encore bien l'habitude en Obj-C et j'avais oublié les différences d'écriture de l'import, c'est un peu la honte mais bon c'est comme ça qu'on s'en souviens...
Ok pour l'include de fichier C venant d'un exemple de prog IOKit... même si je persiste à penser qu'un .h contenant alors juste la déclaration de ta (certainement unique) fonction que tu as dans ton fichier .c ça prend 5s (un copier/coller de la signature de la fonction, un point-virgule au bout, et basta) et resterai plus propre, mais bon... si tu préfères garder comme ça avan de mettre au propre, c'est comme tu le sens :P
Les mêmes règles qu'en C, tu supposes que pour faire de l'obj-c on doit avoir fait du C avant, ben moi j'ai surtout pratiqué de l'assembleur et du basic dont du VB6 avant de passer sous mac, alors j'ai des très mauvaises habitudes et comme je manque de pratique... Mais bon c'est la honte quand même. Sinon t'as raison pour le .h, je vais le faire entre deux compilations...