Xcode 4.2: How to import .h file from subproject

I am new to Xcode subprojects. In my iPhone app project MyProject, I am trying to refactor some common code to a static library project called MyLibrary. After I create MyLibrary and move the code, MyProject is no-longer compiling. The error is that the MyProject cannot see the .h files in MyLibrary.

The error MyLibraryConfig.h: No such file or directory is coming in the line:

#import "MyLibraryConfig.h"
  • How to import the MyLibrary .h files in MyProject ?
  • What is the best practice here? Assuming I have multiple such libraries, it is tedious to add these to header search paths to the parent project.

Solution 1:

In build settings --> Header Search Path --> Add below entry

$(SRCROOT) and mark it as recursive.

enter image description here

Solution 2:

Maybe your header file is also in a subdirectory.

Imagine the following directory setup:

- Desktop
    - MyProject
        - MyProject.xcodeproj
        - main.m

        - MyLibrary
            - MyLibrary.xcodeproj
            - MyHeaderFile.h      <-- wanted header file

If main.m has these contents:

#include "MyHeaderFile.h"

int main() {
    return 0;
}

The compiler (gcc) will think that MyHeaderFile.h is located in the same directory as main.m, from which it is included. To tell the compiler you mean the header file in a subfolder, you have can do two things.

  • You can add a directory to the gcc compiler that says: "hey, also look in that folder". You can do this by using the -iquote myFolder flag.
  • You can include the directory in the include-statement: #include "MyLibrary/MyHeaderFile.h"

There could of course be another problem, but this seams like the most straightforward one.