inclure un fichier C

NseaProtectorNseaProtector Membre
08:59 modifié dans API AppKit #1
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 ???

Réponses

  • mpergandmpergand Membre
    08:59 modifié #2
    #import "monFichier.c"

    Et regarde la doc sur l'inclusion des fichiers en C, pour connaà®tre la différence entre "" et <>

  • NseaProtectorNseaProtector Membre
    08:59 modifié #3
    Ouppsss, maintenant que t'en parle ... Ca me rappel un passage du livre d'Hillegass.
    Désolé pour ma question.
  • AliGatorAliGator Membre, Modérateur
    08:59 modifié #4
    Alors en même temps :
    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 !!
  • NseaProtectorNseaProtector Membre
    08:59 modifié #5
    Pour répondre à  Alligator:
    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...
  • AliGatorAliGator Membre, Modérateur
    08:59 modifié #6
    dans 1232591542:

    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...
    Pourtant ce sont les mêmes règles qu'en C pour les #include, ce coup des <...> vs. "..." :P

    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
  • NseaProtectorNseaProtector Membre
    janvier 2009 modifié #7
    dans 1232596372:

    dans 1232591542:

    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...
    Pourtant ce sont les mêmes règles qu'en C pour les #include, ce coup des <...> vs. "..." :P

    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...
  • AliGatorAliGator Membre, Modérateur
    08:59 modifié #8
    Ah ok au temps pour moi, en lisant ton premier message je croyais que tu avais déjà  fait du C avant de te mettre à  l'Objective-C, c'est pour ça... my mistake  ;)
  • NseaProtectorNseaProtector Membre
    08:59 modifié #9
    En même temps, c'est logique de le penser.
Connectez-vous ou Inscrivez-vous pour répondre.