我正在尝试为用C ++ / Qt编写的应用程序实现自动更新程序。它应该可以在Mac OS X上运行。我在网上搜索过,发现Sparkle框架应该适合我的需求。我在我的xcode项目中添加了Sparkle framework 1.5 b6,还添加了头文件:
#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 ++编译器根本无法处理它们。但是,我知道使用Sparkle的C ++应用程序。那么有人可以告诉我它应该如何在C ++应用程序中使用?
答案 0 :(得分:3)
确实,您需要混合C ++和Objective-C。
这是一个很好的解释,以及一个实现示例:http://el-tramo.be/blog/mixing-cocoa-and-qt/
这是一个C ++ / Qt项目,为Sparkle构建一个Qt可用的dylib包装器:https://github.com/Roxee/qt-roxeemegaup/