代码改变世界

项目中如何添加CorePlot开源框架(重温Xcode链接静态库)

2012-02-11 11:32  张智清  阅读(8469)  评论(0编辑  收藏  举报

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。


作者:张智清
出处: http://www.cnblogs.com/lovecode/archive/2012/02/11/2346389.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给 出原文连接,否则保留追究法律责任的权利。