2010-11-13 10 views
4

Xcode 3.25, compatibilité Mac OS X 10.6, 10.5 requise.Mac - Ajout de CoreGraphics.framework, pour une utilisation CG dans un en-tête C

J'ai un projet Mac Xcode, qui mélange de cacao et C/C++. Certains modules hérités nécessitent un en-tête C uniquement.

J'ai créé un fichier d'en-tête C: myCTypes.h

Je souhaite utiliser un CGPoint dans cet en-tête.

La compilation génère une erreur: CGPoint n'est pas défini. OK, pas de problème, donc je vais juste:

#include: "<CoreGraphics/CoreGraphics.h>" 

Malheureusement, je reçois ceci:

error: CoreGraphics/CoreGraphics.h: No such file or directory 

Hmm. OK, donc je ferais mieux d'ajouter le cadre. Mais si je clique avec le bouton droit sur le groupe de frameworks dans Xcode, et essaye de "Ajouter un framework existant", CoreGraphics n'apparait pas dans la liste. Grr.

J'essaie donc de l'ajouter manuellement, naviguer mon chemin vers System/Library/Frameworks. Nup, pas là non plus. Donc, je regarde dans les chemins SDK 10.5, et encore une fois, il y a beaucoup de frameworks CoreXXX, mais pas CoreGraphics.framework. Est-ce que quelqu'un peut me dire ce que je fais mal ici?

De quoi ai-je besoin pour utiliser CGGraphics dans cet entête? À votre santé.

EDIT

Cela a été solutionné par:

#include <Carbon/Carbon.h> 

(Mais si quelqu'un veut me dire si cela est une bonne pratique ou non, s'il vous plaît sentir Acclamations libre..)

Répondre

9

cœur graphique fait partie des services d'application, de sorte que l'en-tête est que vous devez inclure:

#include <ApplicationServices/ApplicationServices.h> 

Vous pouvez inclure Carbon.h si vous voulez, mais sa longueur totale après traitement préalable est très longue, vous devriez donc inclure uniquement lorsque vous devez absolument (par exemple, pour des trucs hotkey Événements carbone) afin de garder votre temps de constituez .

+0

Merci beaucoup Pierre. – SirRatty

+2

n'est pas possible d'inclure les en-têtes graphiques tout cœur au lieu de ApplicationServices entiers? – pqnet

1

Eh bien je sais ce sujet est super vieux mais je voulais répondre à la question de pqnet dans les commentaires (je ne peux pas le commenter car j'ai moins de 50 points de rep :() maintenant au point: Oui, aujourd'hui de toute façon, vous ne pouvez ajouter qu'un cadre graphique de base si vous aimez

Cliquez sur votre projet dans le volet de navigation du projet;. construire des phases;. lien binaire avec les bibliothèques ensuite, choisissez CoreGraphics, puis cliquez sur ajouter

Cest. tout, profiter.