16

How do I add c library to Xcode Cocoa project?

Or what is the best option, I don't want to copy them into Cocoa project directory.

I have a C project called a which compiles into library a.dylib and header file a.h, the project is located in it's own directory.

I want to use this library from my objective-c application in Xcode.

How do I add the header file and library to my Xcode project?

I can drag the a.dylib into other frameworks but what do I do with a.h?

stefanB
  • 77,323
  • 27
  • 116
  • 141

3 Answers3

29

I figured it out.

I point to location of project a deployment directory (headers) to Search Path in project settings either:

  • as Header Search Paths, if used as <a/a.h>
  • or into User Header Search Paths, if used as "a/a.h"

As for library I just drag it to Xcode project and set it to refer to library instead of copy.

stefanB
  • 77,323
  • 27
  • 116
  • 141
5

Here are the steps before adding a header file test.h in your project. Here is the files location root -> Library -> include -> test.h

  1. click on build settings

  2. Find User Header Search path. add your header file location here. add following value to Debug, Release and Any Architecture field. $(SRCROOT)/Library/include. Your project Root is the folder that contains your project, it conatins .xcodeproj file.

After adding path you will be able to add header in like this

# include "test.h"
2

You can drag them both the .a and .h files to Xcode, but make sure to not check the "Copy items to project folder". As for referencing the header file, you'll need to put it in a place where you can add a path to it in your #include/#import statements. Is there a reason you don't want to copy the header to your project file?

Ben Gottlieb
  • 85,404
  • 22
  • 176
  • 172
  • the reason for not copying it is that it is a separate project and i want to point to it, but might include it later on as it might be easier to manage, thanks – stefanB Jan 19 '10 at 11:39
  • Do you not want to copy the SOURCE, or the LIBRARY itself? To make #importing easier, I would copy the header file. – Ben Gottlieb Jan 19 '10 at 11:46
  • Preferably I would not copy either. I generally leave projects separate and only include the them in the path, this is for c/c++ projects using makefiles. I'm figuring out the best way for Cocoa and C libraries. – stefanB Jan 19 '10 at 11:57