Headers in 3rd party frameworks on Mac OS X

1.9k Views Asked by At

I'm using the Sparkle framework in Qt. I've added the following to my .pro file:

LIBS += -framework Sparkle
QMAKE_CXX_FLAGS += -F/path/to/the/directory/sparkle.framework/is/in

However I get a compilation error saying "Sparkle/Sparkle.h" cannot be found. Framework headers physically reside in MyFramework.framework/Headers/*.h and are included like MyFramework/*.h

What commands do I need to add to my .pro file to properly include the Sparkle framework headers?

2

There are 2 best solutions below

1
On BEST ANSWER

The problem was that I was using QMAKE_CXXFLAGS, I needed to use QMAKE_CFLAGS for the compiler to include the headers.

3
On

You can use INCLUDEPATH in the .pro file.

From docs,

This variable specifies the #include directories which should be searched when compiling the project. Use ';' or a space as the directory separator.

So, in your case it will be like,

INCLUDEPATH = MyFramework.framework/Headers

where

MyFramework.framework/Headers is the physical location of the headers.

I never been used to MAC OS but still hope it helps..

Edit:

If you want to include like FrameWorkName/HeaderFile.h you can stop with specifying upto the desired folder.

For e.g,

If home/CommonFolder/FrameWorkName/HeaderFile.h is your header file's physical location, you can give the INCLUDEPATH as

INCLUDEPATH = home/CommonFolder

Now In your .cpp you can give like #include "FrameWorkName/HeaderFile.h",