This is the point. I have a subproject (static library) created. The library compiles well. No errors. When I include this library inside a project and imports a header from tha
Please try this…
step1: right click on the 'projectName.xcodeproj'(static library).Choose 'Get info' and copy the full path from(General->where)
step2: Paste full path to 'Header search paths' for your main project(Both Targets and Project )
Regarding script to show you env variables, here's how I do it (open images at the new tab for better scaling):
As you can see, BUILT_PRODUCTS_DIR
doesn't have any headers copied from the library. Either put headers there manually (strongly not recommended) or add search path to the location that you know the headers must be at:
Now as there were two headers cocos2d.h
and MyStaticLibrary.h
, cocos2d.h
was successfully imported although it will have additional dependency.
The path ../MyStaticLibrary/build/$(BUILD_STYLE)-$(PLATFORM_NAME)
will also (recursively) have public headers of the library.
After almost 5 days of a nightmare trying to solve that, I finally found this tutorial: http://www.youtube.com/watch?v=XUhLETxgcoE
This is the only solution that worked for me. The simplest and the best.
Thanks for every one trying to solve this.
After downloading your sample project, I had it working in a few minutes by making the following changes.
First, you need to add an entry for the MyProject
target's Build Settings under Header Search Paths, so that the files such as HelloWorldLayer.h
, which #import "cocos2d.h"
, know where to find that file.
Under the Header Search Paths
, I entered ../MyStaticLibrary/MyStaticLibrary/libs/**
like shown in the image below:
That solved the problem of the inability of the preprocessor to find the necessary source files from the MyStaticLibrary
, for the MyProject
project, but after compiling, I got an error about missing symbols. I needed to add the built libMyStaticLibrary.a
to the Link Binary With Libraries
step like shown in the image below:
After that, the project compiles fine.
(Not enough rep to post comment...)
Did you try specifically including the Platforms directory in the header search path? Presumably, Platforms is in the source directory, not in $(BUILT_PRODUCTS_DIR) so may not be searched in your current setting.