Linking against Apple frameworks with gcc
Asked Answered
T

1

24

I've created some wrapper functions that encapsulate working with CoreAudio, and the goal is to create a C library that I can use with some command line C++ tools. So far things are working well. I took a sample project, modified it, and it builds and runs in XCode. I'd like to skip XCode altogether and build the library with gcc and a Makefile.

How can I link against an Apple Framework? Are Frameworks just shared libraries that I could include in the -l and -L options on gcc?

Thingumajig answered 22/11, 2009 at 21:56 Comment(0)
P
31

Here's an example:

gcc -framework CoreServices -o test test.c

From the man page of Apple's gcc (i686-apple-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.

And from ld's man page:

 -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').
Paphos answered 22/11, 2009 at 22:30 Comment(1)
So the difference between linking with -framework and linking with -l on Mac OS is the search path right?Ironworker

© 2022 - 2024 — McMap. All rights reserved.