我写的Mac OS浏览器插件,将放置一个状态栏图标状态栏,用户可以使用与浏览器插件接口。 我已经成功地建成了XCode 4.4.1 FireBreath 1.6项目,可以在浏览器中安装。 然而,使用FireBreath C ++,而大部分的Mac OS的现有的库的写入目标C.
在/Mac/projectDef.make文件,我添加了可可框架和基础框架,建议在这里和其他资源,我在网上查到:
target_link_libraries(${PROJECT_NAME}
${PLUGIN_INTERNAL_DEPS}
${Cocoa.framework} # added line
${Foundation.framework} # added line
)
我重新prepmac.sh,期待一个新的项目在Xcode中创建与我.mm文件和.m文件; 然而,似乎他们是被忽略。 我只看到的.cpp和.h文件。 我添加的规则为那些在projectDef.make文件,但它似乎不有所作为:
file (GLOB PLATFORM RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
Mac/[^.]*.cpp
Mac/[^.]*.h
Mac/[^.]*.m #added by me
Mac/[^.]*.mm #added by me
Mac/[^.]*.cmake
)
即使我在手动添加文件,我得到了一系列的编译错误。 有关于他们的20,所有相关的文件NSObjRuntime.h
文件:
Parse Issue - Expected unqualified-id
Parse Issue - Unknown type name 'NSString'
Semantic Issue - Use of undeclared identifier 'NSString'
Parse Issue - Unknown type name 'NSString'
...
...
Semantic Issue - Use of undeclared identifier 'aSelectorName'
...
...
Semantic Issue - Use of undeclared identifier 'aClassName'
...
再这样下去,这一段时间,类似的错误...
从我读过,这些错误出现,因为在基础框架,我相信我已经包含在项目的依赖。 我也尝试一下在Xcode项目
我给点现在在哪里我不知道下一个尝试的东西。 人们说这是不是很难在C / C ++代码中使用目标C,但作为新的XCode和目标C可能有助于我的困惑。 这仅仅是4,我在这个新平台上的一天。
我需要什么做的就是XCode中编译目标C代码? 请记住,我有点新本,所以如果你把详细的解答,而不是模糊的俏皮话,在常见我会感激firebreath标签。 我只是有点超过我的头,但如果你可以让我过去,这关我敢肯定我会很好的从那里走。
更新:
我编辑的项目/为myplugin /的CMakeLists.txt,并在.M和.mm规则有太多增加。 运行prepmac.sh后,这些文件都包含在这个项目,但我仍然会得到相同的编译错误。
我从obj的C代码到为myplugin根文件夹移动所有的.h文件和.mm文件,并重新进行了prepmac.sh文件。 问题依然存在。 相同的编译错误。