Заголовки в сторонних фреймворках на Mac OS X - PullRequest
3 голосов
/ 11 августа 2010

Я использую платформу Sparkle в Qt. Я добавил следующее в мой .pro файл:

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

Однако я получаю ошибку компиляции, в которой говорится, что «Sparkle / Sparkle.h» не может быть найден. Заголовки каркаса физически находятся в MyFramework.framework / Headers / *. H и включены как MyFramework / *. H

Какие команды мне нужно добавить в мой файл .pro, чтобы правильно включить заголовки платформы Sparkle?

Ответы [ 2 ]

2 голосов
/ 12 августа 2010

Проблема была в том, что я использовал QMAKE_CXXFLAGS, мне нужно было использовать QMAKE_CFLAGS, чтобы компилятор включал заголовки.

0 голосов
/ 11 августа 2010

Вы можете использовать INCLUDEPATH в файле .pro.

Из документов

Эта переменная задает каталоги #include, которые должны бытьискал при компиляции проекта.Используйте ';'или пробел в качестве разделителя каталогов.

Итак, в вашем случае это будет похоже на

INCLUDEPATH = MyFramework.framework/Headers

, где

MyFramework.framework/Headers - это физическое расположение заголовков.

Я никогда не использовал MAC OS, но все же надеюсь, что это поможет ..

Редактировать :

Если вы хотите включить как FrameWorkName/HeaderFile.h, вы можете прекратить указывать нужную папку.

Например,

Если home/CommonFolder/FrameWorkName/HeaderFile.h - это физическое местоположение вашего заголовочного файла, вы можете указать INCLUDEPATH как

INCLUDEPATH = home/CommonFolder

Теперь В вашем .cpp вы можете дать как #include "FrameWorkName/HeaderFile.h",

...