青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

羅朝輝(飄飄白云)

關注嵌入式操作系統,移動平臺,圖形開發。-->加微博 ^_^

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  85 隨筆 :: 0 文章 :: 169 評論 :: 0 Trackbacks

在 iOS 平臺上編譯 DCMTK

羅朝輝 (http://www.shnenglu.com/kesalin)

CC 許可,轉載請注明出處

DCMTK是德國 Offis  公司開發的實現 DICOM 協議的跨平臺開源 C++庫,在醫學領域里是很有名的,它支持Windows ,Linux,Mac OS,SUN等平臺。不過貌似在 iOS 平臺上編譯 DCMTK 的文檔很少很少,折騰了好久終于編譯成功了,記錄下來。

我的編譯環境:
Mac OS 10.6
XCode 4.0.2
iOS SDK 4.3

1,首先下載最新的 DCMTK:http://www.dcmtk.org/,目前的版本為:dcmtk-3.6.0;

2,下載最新的 CMake:http://www.cmake.org/,安裝;

3,解壓 dcmtk 至 dcmtk-3.6.0,并新建目錄 dcmtk-xcode;

4,運行 CMake,按照如下圖所示步驟執行:

4.1,設置 dcmtk 源文件目錄以及編譯目錄
4.2,點擊 Configure,在彈出的對話框中選中 XCode:

4.3,如果 configure 運行顯示 error, Don't worry!
4.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) 

4.5,再次點擊 configure,運行,這次應該沒有錯誤了;
4.5,然后點擊 generate,就會在 dcmtk-xcode 下生成名為 DCMTK.xcodeproj 的 xcode 工程。

5,打開 DCMTK.xcodeproj 工程,點擊工程名,查看 Build Setting,設置 Base SDK 為 Latest Mac OS(Mac OS 10.X),編譯 target 為 ALL_BUILD;

6,然后編譯運行,編譯時間很長,你可以去這里:http://code.google.com/p/ios-static-libraries/,下載編譯好的其他 lib for iOS,如 zlib,openssl 等。

7,編譯應該沒有錯誤,如果報出找不到 libc.h,可以直接 comment 這一行,build again!

8,編譯成功之后,點擊工程名,查看 Build Setting,設置 Base SDK 為 Latest iOS(iOS x),設置 Architectures 為 Standard,設置 Build Active Architecture only 為 Yes;

9,修改 TARGETS 列表下 ALL_BUILD 的 Target Dependencies,將其下所有非 lib 的dependencies 刪除:

10,再次編譯 ALL_BUILD,如果沒有錯誤報出,恭喜 Dcmtk 已經編譯成功!

12,新建 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

include:


libs:

11,新建一個 iOS 應用程序工程,將上面的文件夾拷貝到工程目錄下,設置工程的 Build Setting/Header Search Paths 為 PathToYourDcmtk/dcmtk/include,然后在工程 Target 的 Build Phases/Link Binary With Libraries 追加 libPlatform/*.a文件。
12,在某個.mm文件(ObjC與C++混編,可修改已有文件的后綴)中,導入頭文件,編寫代碼測試:

#include <dcmtk/config/osconfig.h>
#include <dcmtk/dcmdata/dcfilefo.h>

#include <dcmtk/dcmdata/dcdeftag.h>

    NSString *dcmFilename = @"/Users/luozhaohui/2.dcm";

    DcmFileFormat fileFormat;

    OFCondition loadStatus = fileFormat.loadFile([dcmFilename UTF8String]);

    if (loadStatus.good())

    {

        OFString patientName;

        OFCondition findStutas = fileFormat.getDataset()->findAndGetOFString(DCM_PatientName, patientName);

        if (findStutas.good())

        {

            NSString *name = [NSString stringWithUTF8String:patientName.c_str()];

            NSLog(@" >> %@ patient name is [%@]", dcmFilename, name);

        }

    }

    else 

    {

        NSLog(@" >> Failded to load %@!", dcmFilename);

    }

 

13, 如果要在設備上運行,需要將 dcmtk 重新編譯一次 ios device 版本,然后鏈接新的 dcmtk 設備版庫。然后再編譯 app,這時如果出現  “Undefined symbols for architecture armv7:   "_inflateEnd"” 類似的錯誤,可以在 build setting 中設置 Other Linker Flags 為 /usr/lib/libz.dylib 即可。

 

posted on 2011-11-10 12:59 羅朝輝 閱讀(9390) 評論(13)  編輯 收藏 引用 所屬分類: Cocoa 開發醫療開發

評論

# re: [iOS]在 iOS 平臺上編譯 DCMTK 2011-11-12 00:01 攀升
有意思,我也要找時間研究下  回復  更多評論
  

# re: [iOS]在 iOS 平臺上編譯 DCMTK 2011-11-22 11:27 路人
你好,我在第十步編譯失敗,請問可以通過郵箱與您交流么?我的郵箱是406891663@qq.com  回復  更多評論
  

# re: [iOS]在 iOS 平臺上編譯 DCMTK 2011-11-22 20:23 羅朝輝
@路人

你確認你刪除了步驟 9 中所有的非 lib 的 dependencies?  回復  更多評論
  

# re: [iOS]在 iOS 平臺上編譯 DCMTK 2011-12-27 23:24 路人
使用CMake 2.8.6編譯dcmtk-3.6.1_20110922.tar.gz,可以順利的生成xcode項目文件。打開時卻提示:DCMTK.xcodeproj cannot be opened because the project file cannot be parsed。 你有遇到這種情況嗎?  回復  更多評論
  

# re: [iOS]在 iOS 平臺上編譯 DCMTK 2011-12-28 12:24 羅朝輝
@路人

3.6.1 我沒有試驗過。。。  回復  更多評論
  

# re: [iOS]在 iOS 平臺上編譯 DCMTK 2012-02-13 22:47 polinzhuo
有上線軟件嗎,可以探討一下。polinzhuo@163.com  回復  更多評論
  

# re: [iOS]在 iOS 平臺上編譯 DCMTK 2012-06-07 14:54 terran
我按照你的方法把庫都編譯好了(模擬器版本的和device版本的都編譯成功了),在模擬器上面運行正常,但是編譯到機器上面跑的時候鏈接新的 dcmtk 設備版庫時候出了問題:
Undefined symbols for architecture armv7:
"__ZN13DcmFileFormatD1Ev", referenced from:
-[ViewController decodeStillImage:] in ViewController.o
"__ZN21DJDecoderRegistration7cleanupEv", referenced from:
-[ViewController decodeStillImage:] in ViewController.o
"__ZN13DcmFileFormat10getDatasetEv", referenced from:
-[ViewController decodeStillImage:] in ViewController.o
"__ZN21DJDecoderRegistration14registerCodecsE35E_DecompressionColorSpaceConversion13E_UIDCreation21E_PlanarConfigurationb", referenced from:
-[ViewController decodeStillImage:] in ViewController.o
"__ZN13DcmFileFormat8saveFileEPKc16E_TransferSyntax14E_EncodingType16E_GrpLenEncoding17E_PaddingEncodingjj15E_FileWriteMode", referenced from:
-[ViewController decodeStillImage:] in ViewController.o
"__ZN10DcmDataset20chooseRepresentationE16E_TransferSyntaxPK26DcmRepresentationParameter", referenced from:
-[ViewController decodeStillImage:] in ViewController.o
"__ZN10DiRegisterD1Ev", referenced from:
__GLOBAL__I_a in ViewController.o
"__ZN13DcmFileFormatC1Ev", referenced from:
-[ViewController decodeStillImage:] in ViewController.o
"__ZN8OFStringD1Ev", referenced from:
-[ViewController decodeStillImage:] in ViewController.o
"__ZN13DcmFileFormat8loadFileEPKc16E_TransferSyntax16E_GrpLenEncodingj14E_FileReadMode", referenced from:
-[ViewController decodeStillImage:] in ViewController.o
"__ZN10DicomImageC1EPKcmmm", referenced from:
-[ViewController decodeStillImage:] in ViewController.o
"__ZN10DiRegisterC1Ev", referenced from:
__GLOBAL__I_a in ViewController.o
"__ZN7DcmItem18findAndGetOFStringERK9DcmTagKeyR8OFStringmb", referenced from:
-[ViewController decodeStillImage:] in ViewController.o
"__ZN8OFStringC1Ev", referenced from:
-[ViewController decodeStillImage:] in ViewController.o
而且我也按照你說的把在 build setting 中設置 Other Linker Flags 為 /usr/lib/libz.dylib了還是有問題。
你知道這是怎么回事兒嘛?望指教,謝謝:)。
我的運行環境是xcode4.3.2 ios5.1
我的郵箱是terran_lang@hotmail.com。希望得到你的指教。  回復  更多評論
  

# re: [iOS]在 iOS 平臺上編譯 DCMTK 2012-08-26 22:46 leomay
@羅朝輝
刪除第9步中的target dependencies會crash掉xcode,我用的是ios5.1,llvm-gcc編譯器,謝謝  回復  更多評論
  

# re: [iOS]在 iOS 平臺上編譯 DCMTK 2012-09-18 15:59 謝云偉
我的qq是648098050,能加下嗎?我實在不知道后續怎么做  回復  更多評論
  

# re: [iOS]在 iOS 平臺上編譯 DCMTK[未登錄] 2012-11-03 11:00 jim
如何獲取圖像呢,我用savefile,一直是失敗,什么問題呢,謝謝。  回復  更多評論
  

# re: [iOS]在 iOS 平臺上編譯 DCMTK 2014-07-22 17:41 owen263 at gmail.com
@路人 我的也是這種情況。求助。
  回復  更多評論
  

# re: [iOS]在 iOS 平臺上編譯 DCMTK 2014-08-18 15:05 lev
3.6.1DCMTK.xcodeproj cannot be opened because the project file cannot be parsed,qq:664394181,有沒有人有同樣問題 是什么問題啊?  回復  更多評論
  

# re: [iOS]在 iOS 平臺上編譯 DCMTK 2014-10-08 12:38 iOS
方便加我QQ么?編譯成功 但是不能用其中的庫函數。我的QQ1930401157  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品一品区二品区三品区| 国产亚洲激情视频在线| 日韩亚洲国产欧美| 亚洲三级影院| 欧美日韩极品在线观看一区| 一片黄亚洲嫩模| 99视频精品免费观看| 国产精品久久久久aaaa| 久久精品盗摄| 久久一区二区三区超碰国产精品| 亚洲电影免费观看高清完整版在线 | 欲香欲色天天天综合和网| 欧美韩日视频| 欧美三区在线| 久久久999精品| 欧美不卡一区| 亚洲免费视频在线观看| 欧美亚洲综合网| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲欧洲日本专区| 国产精品久久久久久超碰| 久久av在线| 欧美黑人多人双交| 久久九九精品| 欧美日韩精品在线播放| 欧美一级在线视频| 欧美.www| 久久久久久免费| 欧美激情视频网站| 久久国产精彩视频| 欧美日韩hd| 猛干欧美女孩| 国产欧美日韩高清| 亚洲日本无吗高清不卡| 国产亚洲aⅴaaaaaa毛片| 欧美黑人国产人伦爽爽爽| 国产精品视频xxxx| 亚洲人成人一区二区在线观看| 国产精品美女久久福利网站| 亚洲国产精品黑人久久久| 亚洲欧美综合一区| 夜夜嗨av一区二区三区免费区| 欧美一区在线看| 亚洲综合999| 欧美成人资源| 你懂的国产精品| 国产精品制服诱惑| 99国产精品视频免费观看一公开 | 久久在线播放| 欧美一区二区在线看| 欧美日产在线观看| 欧美大片免费| 亚洲黄色片网站| 久久成人免费日本黄色| 欧美一区二区视频在线观看2020 | 久久亚裔精品欧美| 久久黄色网页| 国产精品一区二区三区免费观看 | 欧美国产另类| 在线视频成人| 久久免费视频观看| 久久一二三四| ●精品国产综合乱码久久久久| 性欧美精品高清| 久久久999精品| 国内精品久久久久影院薰衣草| 欧美永久精品| 老司机精品导航| 在线观看视频一区二区欧美日韩 | 亚洲福利小视频| 91久久精品国产91性色| 久久综合色88| 亚洲国产精品一区二区久| 亚洲人成免费| 欧美日韩亚洲另类| 亚洲深夜福利视频| 久久精品视频播放| 精品动漫3d一区二区三区免费版| 久久国内精品自在自线400部| 老妇喷水一区二区三区| 最新日韩中文字幕| 欧美日韩国产页| 亚洲自拍高清| 欧美xxx成人| 一区二区久久| 国产欧美日本一区二区三区| 久久久久久久久久久一区| 欧美激情成人在线| 日韩一级精品视频在线观看| 国产精品久久久久久亚洲毛片| 性视频1819p久久| 欧美成人黄色小视频| 一本色道精品久久一区二区三区| 国产精品国产成人国产三级| 欧美伊人久久| 亚洲精品永久免费精品| 欧美中文字幕在线观看| 亚洲人体影院| 国产精品美女xx| 欧美成人亚洲成人| 亚洲一区二区成人| 亚洲高清资源| 欧美在线一二三| 亚洲日本欧美日韩高观看| 国产精品久久久久久久久免费| 久久久久久久久久久成人| 在线观看成人av| 亚洲国产精品va在线看黑人| 亚洲一区免费网站| 亚洲二区在线| 国产精品日韩精品欧美精品| 欧美成ee人免费视频| 亚洲欧美变态国产另类| 亚洲国产精品一区二区三区| 久久久久久尹人网香蕉| 亚洲午夜精品网| 91久久国产综合久久蜜月精品 | 午夜欧美精品久久久久久久| 亚洲国产精品一区二区www在线| 久久精品国产精品亚洲| 亚洲一区二区三区免费观看| 亚洲激情视频网| 国产一区二区黄色| 国产伦精品一区二区三区视频黑人| 欧美大片va欧美在线播放| 久久全球大尺度高清视频| 先锋影音国产一区| 亚洲综合国产激情另类一区| 日韩视频在线你懂得| 亚洲激情电影在线| 欧美大片一区二区| 欧美刺激性大交免费视频| 麻豆成人在线| 久久免费视频在线观看| 久久爱另类一区二区小说| 亚洲欧美日韩国产综合在线 | 狠狠色噜噜狠狠色综合久| 国产伦精品一区二区三区免费迷| 欧美视频在线看| 欧美人体xx| 欧美日韩国产不卡| 欧美日韩国产综合一区二区| 欧美日韩一区在线观看视频| 欧美日韩高清一区| 欧美视频网址| 国产精品一区二区视频| 国产欧美日韩亚洲一区二区三区| 国产精品蜜臀在线观看| 国产精品亚洲综合久久| 国产麻豆9l精品三级站| 国产香蕉97碰碰久久人人| 国产精品资源在线观看| 国产有码在线一区二区视频| 国产一区二区中文字幕免费看| 国内精品久久久久久影视8| 一区在线播放视频| 亚洲国产网站| 99在线热播精品免费| 亚洲在线中文字幕| 欧美影院午夜播放| 久久亚洲一区二区三区四区| 欧美高潮视频| 99视频有精品| 亚洲欧美日韩久久精品 | 一本一道久久综合狠狠老精东影业 | 亚洲另类黄色| 亚洲免费网址| 久久中文字幕导航| 欧美国产日韩精品免费观看| 99国产精品99久久久久久| 亚洲欧美www| 男女激情久久| 欧美日韩中文字幕在线视频| 国产亚洲a∨片在线观看| 亚洲国产日韩欧美在线图片| 亚洲欧美日韩天堂| 蜜臀a∨国产成人精品| 99精品国产在热久久婷婷| 久久激情五月激情| 久久精品国产一区二区电影| 亚洲国产天堂久久综合网| 亚洲天堂久久| 老司机免费视频一区二区三区 | 久久国产精品99国产精| 欧美国产视频在线| 国内综合精品午夜久久资源| 一本色道久久88精品综合| 久久视频在线看| 亚洲少妇中出一区| 欧美激情一区二区在线 | 欧美sm重口味系列视频在线观看| 欧美性猛交xxxx乱大交蜜桃| 亚洲电影专区| 欧美主播一区二区三区美女 久久精品人| 欧美91大片| 欧美在线|欧美| 国产精品国产三级国产aⅴ入口| 亚洲激情第一区| 乱码第一页成人| 久久精品国产第一区二区三区|