项目中如何添加CorePlot开源框架(重温Xcode链接静态库)
CorePlot是一个开源的数据报表框架库,且是个静态库(iphone协议不允许连接动态库)。因此在项目中使用CorePlot要进行必要的一些设置以使Xcode正确链接这个静态库。(示例项目:PieChart Sample)。
第一种方式:Dependent Project Install
1. 首先将core-plot/framework文件夹下的CorePlot-CocoaTouch.xcodeproj工程文件拖放进本例的PieChart Sample项目中,其间确认没有勾选"copy items to destination group's folder"选项。一旦添加了这个CorePlot工程文件,则在iPhone项目中作为二进制形式是可用的。
2. 将CorePlot项目中Products文件夹下的libCorePlot-CocoaTouch.a这个静态库文件拖拉进示例项目的Targets的“Build Phases”选卡下的“Link Binary With Libraries”节点中。(注意:是Products文件夹下的才是库文件,图标是个小房子,之前就因为拖进了那个图标是页面的同名文件最后编译出现报“Apple Mach-O Linker(Id)Error错误)
3. 在示例项目(PieChart Sample)的Target的“Build Phases”选卡的“Target Dependencies”节点下添加CorePlot-CocoaTouch。(这将确保Core Plot库的建立在我们编译自己的项目时)。
4. 由于我们是以静态链接库方式导入Core Plot,在我们的示例项目中Xcode需要知道所请求头文件的定位。在源代码中我们将导入Core Plot文件“CorePlot-CocoaTouch.h”。因此对于添加头文件定位搜索路径,我们需要做这步操作:定位示例项目的Targets的Build Settings选卡下搜索“Header Search Paths”设置项。
双击该设置项,在弹出窗口中添加core-plot/framework文件夹的全路径,并确保选中“recursive”选项框。
6. 另外头文件路径也需要设置一组连接标志,即“Other Linker Flags”设置项。同样是搜索定位到,然后双击添加这两个标志-ObjC与-all_load。(注:Xcode4.2中-all_load标志值可不要。)
7. 最后由于Core Plot用到了QuartzCore框架,所以在此示例项目中也要添加这个链接库。
至此,我们就完成了在项目中如何导入CorePlot静态库的所有操作步骤,编译运行项目无错。
第二种:Static Library Install
1. 复制CorePlotHeaders目录到你的Xcode项目中。
2. 复制CorePlot library到Xcode项目中。
3. 打开应用项目的Targets-Build Settings选卡项,为Other Linker Flags加入-ObjC值(而-all_load请求链接标志只在Xcode4.2下不需要使用)。
4. 添加QuartzCore图形框架到项目中。
5. 改变你项目中编译设置的C/C++ Compiler为LLVM GCC4.2或者LLVM1.6。