2009-11-22 10 views
20

J'ai créé des fonctions wrapper qui encapsulent le travail avec CoreAudio, et le but est de créer une bibliothèque C que je peux utiliser avec certains outils C++ en ligne de commande. Jusqu'à présent, les choses fonctionnent bien. J'ai pris un exemple de projet, je l'ai modifié, et il construit et fonctionne en XCode. Je voudrais sauter complètement XCode et construire la bibliothèque avec gcc et un Makefile.Liaison avec les frameworks Apple avec gcc

Comment puis-je lier avec un framework Apple? Frameworks est-il juste des bibliothèques partagées que je pourrais inclure dans les options -l et -L sur gcc?

Répondre

24

Voici un exemple:

gcc -framework CoreServices -o test test.c

De la page de manuel de gcc d'Apple (i686-pomme-darwin10-gcc-4.2.1):

In addition to the options listed below, Apple's GCC also accepts and 
    passes nearly all of the options defined by the linker ld and by the 
    library tool libtool. Common options include -framework, -dynamic, 
    -bundle, -flat_namespace, and so forth. See the ld and libtool man 
    pages for further details. 

Et de la page de manuel de ld:

-framework name[,suffix] 
      This option tells the linker to search for `name.frame- 
      work/name' the framework search path. If the optional suffix 
      is specified the framework is first searched for the name 
      with the suffix and then without (e.g. look for `name.frame- 
      work/name_suffix' first, if not there try `name.frame- 
      work/name'). 
+0

Donc, la différence entre la liaison avec '-framework' et la liaison avec' -l' sur Mac OS est le chemin de recherche correct? – user10607