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

羅朝輝(飄飄白云)

關(guān)注嵌入式操作系統(tǒng),移動(dòng)平臺(tái),圖形開(kāi)發(fā)。-->加微博 ^_^

  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  85 隨筆 :: 0 文章 :: 169 評(píng)論 :: 0 Trackbacks

在 iOS 平臺(tái)上編譯 DCMTK

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

CC 許可,轉(zhuǎn)載請(qǐng)注明出處

DCMTK是德國(guó) Offis  公司開(kāi)發(fā)的實(shí)現(xiàn) DICOM 協(xié)議的跨平臺(tái)開(kāi)源 C++庫(kù),在醫(yī)學(xué)領(lǐng)域里是很有名的,它支持Windows ,Linux,Mac OS,SUN等平臺(tái)。不過(guò)貌似在 iOS 平臺(tái)上編譯 DCMTK 的文檔很少很少,折騰了好久終于編譯成功了,記錄下來(lái)。

我的編譯環(huán)境:
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,運(yùn)行 CMake,按照如下圖所示步驟執(zhí)行:

4.1,設(shè)置 dcmtk 源文件目錄以及編譯目錄
4.2,點(diǎn)擊 Configure,在彈出的對(duì)話框中選中 XCode:

4.3,如果 configure 運(yùn)行顯示 error, Don't worry!
4.4,配置 CMake 選項(xiàng):
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,再次點(diǎn)擊 configure,運(yùn)行,這次應(yīng)該沒(méi)有錯(cuò)誤了;
4.5,然后點(diǎn)擊 generate,就會(huì)在 dcmtk-xcode 下生成名為 DCMTK.xcodeproj 的 xcode 工程。

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

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

7,編譯應(yīng)該沒(méi)有錯(cuò)誤,如果報(bào)出找不到 libc.h,可以直接 comment 這一行,build again!

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

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

10,再次編譯 ALL_BUILD,如果沒(méi)有錯(cuò)誤報(bào)出,恭喜 Dcmtk 已經(jīng)編譯成功!

12,新建 dcmtk 目錄,將相關(guān)的 include 和 .a lib 文件拷貝到對(duì)應(yīng)的目錄下,最終目錄結(jié)構(gòu)如下:
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,新建一個(gè) iOS 應(yīng)用程序工程,將上面的文件夾拷貝到工程目錄下,設(shè)置工程的 Build Setting/Header Search Paths 為 PathToYourDcmtk/dcmtk/include,然后在工程 Target 的 Build Phases/Link Binary With Libraries 追加 libPlatform/*.a文件。
12,在某個(gè).mm文件(ObjC與C++混編,可修改已有文件的后綴)中,導(dǎo)入頭文件,編寫代碼測(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, 如果要在設(shè)備上運(yùn)行,需要將 dcmtk 重新編譯一次 ios device 版本,然后鏈接新的 dcmtk 設(shè)備版庫(kù)。然后再編譯 app,這時(shí)如果出現(xiàn)  “Undefined symbols for architecture armv7:   "_inflateEnd"” 類似的錯(cuò)誤,可以在 build setting 中設(shè)置 Other Linker Flags 為 /usr/lib/libz.dylib 即可。

 

posted on 2011-11-10 12:59 羅朝輝 閱讀(9400) 評(píng)論(13)  編輯 收藏 引用 所屬分類: Cocoa 開(kāi)發(fā)醫(yī)療開(kāi)發(fā)

評(píng)論

# re: [iOS]在 iOS 平臺(tái)上編譯 DCMTK 2011-11-12 00:01 攀升
有意思,我也要找時(shí)間研究下  回復(fù)  更多評(píng)論
  

# re: [iOS]在 iOS 平臺(tái)上編譯 DCMTK 2011-11-22 11:27 路人
你好,我在第十步編譯失敗,請(qǐng)問(wèn)可以通過(guò)郵箱與您交流么?我的郵箱是406891663@qq.com  回復(fù)  更多評(píng)論
  

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

你確認(rèn)你刪除了步驟 9 中所有的非 lib 的 dependencies?  回復(fù)  更多評(píng)論
  

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

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

3.6.1 我沒(méi)有試驗(yàn)過(guò)。。。  回復(fù)  更多評(píng)論
  

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

# re: [iOS]在 iOS 平臺(tái)上編譯 DCMTK 2012-06-07 14:54 terran
我按照你的方法把庫(kù)都編譯好了(模擬器版本的和device版本的都編譯成功了),在模擬器上面運(yùn)行正常,但是編譯到機(jī)器上面跑的時(shí)候鏈接新的 dcmtk 設(shè)備版庫(kù)時(shí)候出了問(wèn)題:
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
而且我也按照你說(shuō)的把在 build setting 中設(shè)置 Other Linker Flags 為 /usr/lib/libz.dylib了還是有問(wèn)題。
你知道這是怎么回事兒嘛?望指教,謝謝:)。
我的運(yùn)行環(huán)境是xcode4.3.2 ios5.1
我的郵箱是terran_lang@hotmail.com。希望得到你的指教。  回復(fù)  更多評(píng)論
  

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

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

# re: [iOS]在 iOS 平臺(tái)上編譯 DCMTK[未登錄](méi) 2012-11-03 11:00 jim
如何獲取圖像呢,我用savefile,一直是失敗,什么問(wèn)題呢,謝謝。  回復(fù)  更多評(píng)論
  

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

# re: [iOS]在 iOS 平臺(tái)上編譯 DCMTK 2014-08-18 15:05 lev
3.6.1DCMTK.xcodeproj cannot be opened because the project file cannot be parsed,qq:664394181,有沒(méi)有人有同樣問(wèn)題 是什么問(wèn)題啊?  回復(fù)  更多評(píng)論
  

# re: [iOS]在 iOS 平臺(tái)上編譯 DCMTK 2014-10-08 12:38 iOS
方便加我QQ么?編譯成功 但是不能用其中的庫(kù)函數(shù)。我的QQ1930401157  回復(fù)  更多評(píng)論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国语自产精品视频在线看抢先版结局 | 久久精品亚洲| 亚洲视频综合在线| 亚洲一区二区三区777| 亚洲主播在线播放| 久久国内精品视频| 免播放器亚洲一区| 亚洲欧洲一区| 这里是久久伊人| 亚洲国产精品va在线观看黑人| 国产喷白浆一区二区三区| 久久精品国产一区二区三区| 91久久久久久久久| 久久影院午夜片一区| 久久亚洲影院| 免费成人av在线| 欧美gay视频激情| 老鸭窝亚洲一区二区三区| 亚洲欧美日韩国产一区| 欧美在线一区二区三区| 欧美一区三区三区高中清蜜桃| 亚洲网站视频福利| 狠狠爱成人网| 久久婷婷激情| 亚洲国产一区二区精品专区| 久久精品国产一区二区电影| 亚洲一区二区动漫| 开心色5月久久精品| 一区二区三区中文在线观看| 亚洲伦理网站| 久久精品国产精品亚洲综合| 欧美成人免费在线观看| 在线一区二区三区四区五区| 久久午夜精品| 国产毛片精品视频| 久久精精品视频| 欧美日韩喷水| 亚洲精品国产系列| 久久夜色精品国产| 亚洲一区影音先锋| 欧美日韩一二三区| 亚洲国产精品久久久久久女王| 午夜久久电影网| 一区二区精品国产| 欧美—级在线免费片| 一区二区视频免费完整版观看| 欧美一区二区播放| 亚洲一二三级电影| 国产精品久久久99| 中文亚洲字幕| 亚洲精品在线三区| 欧美成人免费在线观看| 亚洲国产视频一区二区| 欧美大片免费观看| 久久久久久999| 午夜精品福利视频| 欧美性理论片在线观看片免费| 亚洲国产精品女人久久久| 久久男人av资源网站| 午夜欧美不卡精品aaaaa| 国产精品系列在线播放| 欧美一区二区成人| 亚洲欧美日韩另类精品一区二区三区| 激情自拍一区| 一个色综合av| 久久国产一区二区| 亚洲一二三四区| 国产精品久久久久久久久久三级 | 一本色道久久综合狠狠躁篇的优点 | 国产精品老牛| 午夜精品福利在线观看| 亚洲一区二区三区激情| 国产欧美日韩麻豆91| 欧美伊人久久久久久午夜久久久久| 一区二区精品在线观看| 国产精品国产三级国产专区53 | 久久久久99| 久久亚洲综合网| 亚洲欧洲日本国产| 一本色道久久综合亚洲精品不| 欧美日韩国产综合视频在线| 亚洲一区二区黄| 欧美制服第一页| 亚洲精品偷拍| 亚洲女人小视频在线观看| 狠狠干成人综合网| 欧美激情第1页| 国产精品久久久久久久久久免费看 | 久久久久久亚洲精品中文字幕 | 香蕉尹人综合在线观看| 久久久国产精品亚洲一区| 99re热这里只有精品免费视频| 亚洲一区二区精品视频| 亚洲国产高清aⅴ视频| 宅男噜噜噜66一区二区| 亚洲高清精品中出| 亚洲永久免费| 久久九九久精品国产免费直播| 亚洲精品一二三| 欧美一级视频精品观看| 日韩视频中文| 久久成人免费电影| 亚洲图片在线| 老鸭窝毛片一区二区三区| 亚洲毛片在线观看| 欧美一区日本一区韩国一区| 99re热这里只有精品视频| 久久不见久久见免费视频1| 一区二区高清视频| 久久中文久久字幕| 欧美中文字幕在线播放| 欧美日本亚洲| 欧美成人黑人xx视频免费观看 | 亚洲国产精品久久久久秋霞蜜臀 | 亚洲欧美激情一区| 日韩视频免费在线观看| 久久精品国产亚洲aⅴ| 午夜精品久久99蜜桃的功能介绍| 免费在线日韩av| 裸体素人女欧美日韩| 国产欧美一区二区三区国产幕精品| 99国产精品| 免费在线亚洲欧美| 久久阴道视频| 一区二区三区在线观看视频| 午夜精品免费视频| 亚洲欧美日韩国产| 国产精品ⅴa在线观看h| 日韩视频在线一区二区| 日韩一二在线观看| 欧美福利视频一区| 亚洲福利视频一区| 亚洲高清视频一区二区| 久久久青草婷婷精品综合日韩| 久久福利资源站| 国产视频在线观看一区二区| 午夜精彩视频在线观看不卡 | 亚洲欧美在线磁力| 欧美一级夜夜爽| 国产亚洲精品成人av久久ww| 欧美一区二区三区四区在线| 久久理论片午夜琪琪电影网| 国外成人在线| 男男成人高潮片免费网站| 欧美激情久久久| 一区二区三区四区五区在线| 欧美天堂亚洲电影院在线观看 | 亚洲综合电影| 久久久久久久网| 亚洲国产成人久久综合一区| 美女精品在线观看| 亚洲人成免费| 午夜精品区一区二区三| 国产手机视频一区二区| 欧美在线影院在线视频| 欧美激情亚洲自拍| 亚洲视频成人| 你懂的视频欧美| 亚洲国产一区二区精品专区| 在线视频日韩| 国产日韩欧美在线视频观看| 久久婷婷色综合| 亚洲免费av网站| 久久精品国产第一区二区三区最新章节 | 国产精品乱码妇女bbbb| 性欧美超级视频| 亚洲福利av| 欧美在线免费视频| 亚洲黄色成人网| 国产日韩欧美精品综合| 欧美精品一区三区| 午夜精品久久久久久久99樱桃 | 1024欧美极品| 欧美日韩国产大片| 欧美在现视频| 一区二区精品在线观看| 农村妇女精品| 性欧美大战久久久久久久免费观看| 国产一区二区精品丝袜| 欧美理论大片| 久久综合色综合88| 亚洲欧美国产制服动漫| 亚洲精品五月天| 欧美成人国产一区二区| 久久不射中文字幕| 亚洲视频你懂的| 亚洲欧洲在线一区| 韩日午夜在线资源一区二区| 欧美性大战xxxxx久久久| 美女免费视频一区| 久久精品亚洲精品| 午夜精品久久久久久久久久久久久 | 久久资源av| 久久av一区二区三区亚洲| 一区二区三区福利| 亚洲日本中文字幕| 欧美国产91| 欧美粗暴jizz性欧美20| 久久激情一区| 欧美专区在线|