我最近发现 Apple 在 Lion 和 Safari 最新版本中将不支持 webkit 模型,并且每个人都在迁移到 Firebreath 项目以使用 NPAPI。
我有一个基本的 Cocoa 应用程序,它与以下本机框架链接:
- 核心图形
- 核心数据
- IOKit
- PFEventTaps(这是一个 3 方框架:Pfiddlesoft.com)
我从来没有使用过插件,所以这对我来说有点新,我从 Richard bateman 编写的 MAC 教程开始,在遵循指南之后,我最终得到了我个人项目的 firebreath 项目模板。下一步我只是将我所有的 Objective-C 类放入 Source Files 文件夹,添加与 4 个框架的链接,最后我将需要在插件中公开的新公共方法添加到 MyProjectPluinApi.h 例如( registerMethod("MyMethod", make_method(this, &WilmerPlugInAPI::MyMethod));
当我构建 firebreath 项目时,我得到了很多编译错误,其中一个非常重复的是:
NSString was not declared in this scope.
错误指向 NSObjCRuntime.h
到目前为止,我无法使用 XCODE 3.2.6 成功构建此版本
这里有什么问题?我需要更改所有代码以在此模板项目中完成 CPP 样式吗?或者我可以以某种方式链接我的框架?我可以看到一些样本吗?
更多细节:2011 年 11 月 7 日:我试图用一个简单的项目进行测试:
- 首先我创建项目 testOfFB
- 它在 /users/Me/Firebreath-dev/build/projects/testofFB 中生成
- 然后我修改类 testFBApi.cpp 并将其重命名为 testFBApi.mm。
- 我编写了一个名为 testMath.m 的 Objective-c 类并将其重命名为 testMath.mm
我添加了一个带有签名的方法 Add:
-(long) Add:(long)a:(long)b:(long)c;
最后我用这个修改文件 testFBApi.mm:
registerMethod("add", make_method(this, &testFBAPI::add ));
在 add 方法的实现中,我创建了一个objective-c 类方法“add”的实例来测试对我的objective-c 方法的调用。我做了包含,并以这种方式更改了文件 /Mac/projectDef.cmake:
target_link_libraries(${PROJECT_NAME} ${PLUGIN_INTERNAL_DEPS} ${Cocoa.framework} // added line ${Foundation.framework} //added line )
我运行了 prepmac.sh 脚本,然后构建了 xcode 解决方案,并且出现了相同的错误,而且还没有声明一些其他错误,例如 testFBApi。