Я пытаюсь реализовать автоматическое обновление для моего приложения, написанного на C ++ / Qt. Он должен работать на Mac OS X. Я искал в Интернете и обнаружил, что платформа Sparkle должна подходить для моих нужд. Я добавил Sparkle Framework 1.5 b6 в свой проект xcode, а также добавил заголовочный файл:
#include <Sparkle/Sparkle.h>
Теперь, когда я пытаюсь построить проект, компилятор выдает мне много ошибок в SUVersionComparisonProtocol.h и SUUpdater.h:
Expected unqualified-id: @protocol SUVersionComparison
Expected unqualified-id: @end
Expected unqualified-id: @interface SUUpdater: NSObject {
и т. д.
Я вижу, что эти заголовки написаны на Objective-C, поэтому кажется, что компилятор C ++ просто не может их обработать. Тем не менее, я знаю C ++ приложения, которые используют Sparkle. Так может кто-нибудь сказать мне, как его следует использовать в приложениях C ++?
Действительно, вам нужно смешивать C ++ и Objective-C.
Вот отличное объяснение вместе с примером реализации: http://el-tramo.be/blog/mixing-cocoa-and-qt/
и вот проект C ++ / Qt, который создает Qt-используемую оболочку dylib для Sparkle: https://github.com/Roxee/qt-roxeemegaup/
Других решений пока нет …