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 inMyProject
? - 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.
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.