Search code examples
c++iosobjective-cxcodeinclude-path

Use of external C++ headers in Objective-C


In my iOS project I need to use an external library written in C++. The C++ header files are all in one directory.

I've added these C++ headers to my Xcode project, and also specified a header search path (in Build Settings).

The issue is that these C++ headers include each other using < > angle brackets. This results in:

'filename.h' file not found with <angled> include, use "quotes" instead.

The weird thing is that Xcode does not complain about all headers. Also the same header #include'd in one file is fine, while an issue when #include'd in another. I think this is caused by the fact that these headers #include each other.

  1. Why doesn't the search path work?
  2. Is there a way to resolve this without modifying these header files?

Thanks!


Solution

  • #include <bla.h>
    

    is meant for standard library or framework headers, and the search strategy Is different than that used for

    #include "bla.h"
    

    See for example

    As a workaround, you can set the Xcode build setting "Always Search User Paths" to YES.