首先说明,本文虽是原创,但却是http://blog.csdn.net/kesalin/article/details/6955318 这篇博文的补充。
关于在IOS平台上编译DCMTK静态库的文章比较少(目前只有这文章http://blog.csdn.net/kesalin/article/details/6955318)。本人在编译DCMTK静态库的时候,遇到不少麻烦,今天就把本人在IOS平台上编译DCMTK静态库的经历分享一下,希望能够帮助有需要的人。
编译环境:
MAC 一体机 (实验室的,系统版本忘记了,这个无所谓,反正是10)
Xcode 6.1
Cmake 3.1.0 (为了写博文重新做了一次,用的是3.2.2 ,也可以)
IOS SDK 8
开始放大招了。。。。。。。。。。。。。。。。。
一、下载需要的资源包
1.1、肯定是要先下载Cmake、dcmtk源码(本人用的是3.6)
二、配置Cmake
2.1、解压 dcmtk 至 dcmtk-3.6.0,并新建目录 dcmtk-xcode;
2.2、运行 CMake,按照如下图所示步骤执行:
2.3、如果 configure 运行显示 error, Don't worry!
2.4、配置 CMake 选项:
DOXYGEN : OFF
OPENSSL : OFF (optional : you need to have openssl libs for IOS)
PNG: OFF (optional)
PRIVATE_TAGS :ON (optional)
THREADS : OFF (optional)
TIFF : OFF (optional)
XML : OFF (optional)
ZLIB :ON (optional)
2.5、再次点击 configure,运行,这次应该没有错误了;
2.6、Gernating done 之后会在你刚才指定的编译目录(dcmtk-xcode)里生成一个DCMTK 的工程。
2.7、打开 DCMTK.xcodeproj 工程,点击工程名,查看 Build Setting,设置 Base SDK 为 Latest Mac OS(Mac OS 10.X),编译 target 为 ALL_BUILD;(最重要的截图之一丢失,不过可以看下面的截图 2.8)
*注:在选择PROJECT为DCMTK的基础上设置Base SDK 编译target指的是Xcode左上角。点击编译运行会有很多错误,没关系。点击Xcode左边的错误,然后进入出错的页面,再点击错误处的小圆圈,错误提示为缺少"this->",加上即可。
2.8、编译成功之后,点击工程名,查看 Build Setting,设置 Base SDK 为 Latest iOS(iOS x),设置 Architectures 为 Standard,设置 Build Active Architecture only 为 Yes;
2.9、修改 TARGETS 列表下 ALL_BUILD 的 Target Dependencies,将其下所有非 lib 的dependencies 删除:
2.10、再次编译,成功之后新建 dcmtk 目录,将相关的 include 和 .a lib 文件拷贝到对应的目录下,最终目录结构如下:
Copy dcmtk-3.6.0/XXX/include to dcmtk/include/dcmtk/XXX(except for config)
Copy dcmtk-xcode/include/dcmtk/config to dcmtk/include/dcmtk/config
Copy zlib.h to dcmtk/include/zlib.h
Copy dcmtk-xcode/XXX/libsrc/Debug-iphonePLATFORM/libXXX.a to dcmtk/lib-iphonePLATFORM/libXXX.a
Copy libz.a to dcmtk/lib-iphonePLATFORM/libz.a
*注:libz.a 静态库如果从网上找不到,可以按照上文介绍的方法自己编译。(zlib)
**************************************************************************************************************************************************************************************
如果需要编译在真机上运行的静态库,做完 2.6之后,直接设置设置 Base SDK 为 Latest iOS(iOS x)即可。