之前编译过DCMTK的3.6.0版本,现在再次打开不知为什么编译不过了,应该是不小心删掉了文件或者移动了目录。决定再编译一个最新版本。

在我公司的办公电脑上按照上面的步骤生成工程文件时,总是在configure过程中蓝屏,每次都是这样,使用虚拟机也是这样,但是在我自己的笔记本电脑上就可以非常顺利地完成,不知道是不是电脑硬件的问题。笔记本电脑未win10 64bit系统。

在https://www.dcmtk.org/dcmtk.php.en下载最新的源码包dcmtk-3.6.3.zip;同时下载支持库文件dcmtk-3.6.3-win64-support_MD-msvc-12.0.zip和dcmtk-3.6.3-win64-support_MT-msvc-12.0.zip.

下载最新的CMakes,我这是使用的是3.11.0版本。

由于CMakes生成的工程文件所有的文件目录都是绝对路径,工程较多手动修改起来比较繁琐且易出错,不修改的话以后移动目录或者拷贝到其他机器又得重新生成工程文件,此处使用磁盘映射的方式把代码映射到一个虚拟磁盘下,这样可以规避这个问题。

新建文件DCMTK/3.6.3,将源码和支持库文件解压到该目录,新建子文件夹SLN-MD-64bit,将MD支持库文件dcmtk-3.6.3-win64-support_MD-msvc-12.0.zip解压到该文件夹,在3.6.3文件夹中新建.bat文件,输入内容subst Y: %cd%,这样就可以将3.6.3文件夹映射到虚拟磁盘Y盘中,以后不论将3.6.3文件夹移动/拷贝到哪里,只要执行一下这个bat文件就可以到Y盘去编译,也可以将这个脚本放到开机启动里,这样每次开机都会自动映射。

将CMakes解压到C盘根目录。注意:以后拷贝、移动代码到其他机器的时候需要将该文件夹一并移动到目标机器的C盘根目录,以后VS编译都需要该文件夹。

接下来开始生成工程文件并且编译

打开cmakes-gui.exe,源码目录选择Y:/dcmtk-3.6.3;where to bulid the binaries选择Y:/SLN-openssl-MD-64bit;

点击“Configure",选择visual studio 2013 64bit, 配置完成后会列出所有的选项,红色表示没有通过的;

默认勾选的不需要修改,手动勾选DCMTK_WITH_ICONV,DCMTK_WITH_PNG,DCMTK_WITH_TIFF,DCMTK_WITH_XML,DCMTK_WITH_ZLIB;并设置这几个支持库的路径(dcmtk-3.6.3-win64-support_MD-msvc-12.0.zip解压后的文件),如WHIT_LIBICONVINC设置为Y:/SLN-openssl-MD-64bit/dcmtk-3.6.3-win64-support_MD-msvc-12.0/libiconv-1.15。

再次点击Configure;

修改DCMTK_ENABLE_CHARSET_CONVERSION项为libiconv,默认为ICU(International Component for Unicode)是IBM发布的开源开发包,但是不同的机器可能包含的这个包版本不同,或者有的机器不包含,为了生成的工程文件可移植,最好将这个改为libiconv,这样就不依赖与目标编译机器。

点击Generate,就会生成所有的工程文件和.sln文件;

这样生成的所有工程中Runtime Library项都是MT,由于支持库使用的是MD的,所以需要手动将所有工程的这个配置都修改一下,可以使用UE等编辑工具将所有的工程文件都打开,使用文本替换的方式将所有的工程一次替换掉,将所有的<RuntimeLibrary>MultiThreaded</RuntimeLibrary>替换成<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>,将所有的<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>替换成<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>,这样所有工程的Release版的/MT都改成了/MD,Debug版的/MTd改成了/MDd。

接下来打开DCMTK.sln文件,编译就可以了。

以上是/MD 64bit的编译,/MD 32bit的编译完全一样,只是在第一次configure时选择32bit的visual studio即可。

对于/MT类型的编译就省略了手动修改运行时库类型的步骤,直接生成后编译即可。

不知道什么原因,有时候CMake生成的工程文件中会有些错误,比如我遇到过将所有的支持库文件后缀名写了两遍,如PNG.lib.lib;还有时候生成的工程加载失败,编辑工具打开发现有些字段有明显的错误。这些小问题一般都是偶发的,如果不是太多或者比较容易修改的可以手动修改,不方便手动修改的可以使用CMakes安装上面的步骤再重新来一遍或许就好了。

这次编译都没有包含对OpenSSL的支持,使用官方支持库文件夹中的Openssl库编译会有链接错误,等有空了研究怎么将它加上。

转载于:https://www.cnblogs.com/JorSean/p/8876053.html

visual studio 2013 编译DCMTK3.6.3相关推荐

  1. Visual Studio 2013编译Mozilla NPAPI 示例注意事项

    1.Platform Toolset设置Visual Studio 2013 - Windows XP (v120_xp). 2.Character Set设置Use Multi-Byte Chara ...

  2. Windows下Visual studio 2013 编译 Audacity

    编译的Audacity版本为2.1.2,由于实在windows下编译,其源代码可以从Github上取得 git clone https://github.com/audacity/audacity. ...

  3. visual studio 2013编译报错 Unable to start program “.../.../.../project.exe,系统找不到指定文件 error LNK2019

    1.问题描述 报错截图 2.解决方案 1.error 2019和error1120         无法解决的外部符号基本就是属性问题,检车一下可能现在用的是32位的环境,你确定一下你的属性配置是不是 ...

  4. windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

    经过朋友指导,终于成功在windows7上成功编译了caffe,这里将编译过程记录 安装文件准备 1 visual studio 2013安装包下载 2 CUDA75 optional 3 windo ...

  5. Blend for Visual Studio 2013

    软件开发中为了使设计师和程序员"并行"工作并直接参与到程序的开发中来. 1.在网络程序开发团队中,草图设计后,设计师们可以使用HTML.CSS.JavaScript直接生成UI,程 ...

  6. Visual Studio 2013 Update 2 and with Update 2

    Microsoft 的开发工具 Visual Studio 2013 迎来 Update2 更新.本次更新将为普通开发者带来更多全新功能.修复之前旧版 Bugs.提升性能以及稳定性.之前已经安装 VS ...

  7. Visual Studio 2013开发 mini-filter driver step by step (3) - 查看运行结果

    除了调试driver之外,诊断driver问题还有很重要的一种方式就是查看driver的log,当然也可以像应用层程序一样,输出log到文件中,但是输出log到文件中,会影响系统性能,因为log信息一 ...

  8. Visual Studio 2013开发 mini-filter driver step by step (1) - 创建 mini filter driver 工程

    Visual Studio 2013终于集成了Driver的开发和调试功能了,这是大多数开发者期盼已久的大事了,本文以mini filter driver的开发为例. 想当初,要创建一个mini fi ...

  9. Win7系统Visual Studio 2013配置OpenCV3.1图文详解

    Win7系统Visual Studio 2013配置OpenCV3.1图文详解 OpenCV3.1对硬件加速和移动开发的支持相对于老版本都有了较大改进,支持新的开发工具,更易于扩展,配置方式也比以前简 ...

最新文章

  1. 自学python找工作工资-大四应届毕业生,学了两个月Python,找工作感觉好难啊?...
  2. Java之【线程通信】--标志位练习
  3. django mysql debug_部署前准备--使用Mysql之Django Debug Toolbar安装以及配置
  4. redis 保存 array list 区别_为什么Redis的RDB备份不用多线程实现CopyOnWrite?
  5. java基础英语---第二十六天
  6. acill排序 java_字符串ASCII码排序
  7. 第10章 随机山水画(《Python趣味创意编程》教学视频)
  8. 10193 条票房数据告诉你《流浪地球》领跑的电影档战果如何?
  9. BZOJ.4842.[NEERC2016]Delight for a Cat(费用流)
  10. servletconfigservletcontext
  11. 【自动化__GUI自动化】__java__模拟功能操作__鼠标
  12. 计算机开机错误62,电脑出现Error 1962怎么办 电脑启动报错Error 1962的解决方案介绍...
  13. ps4计算机,设置PS4连接电脑
  14. 分布式数据库DBLE
  15. 等保测评机构是什么意思?是什么性质的单位?
  16. 读论文,第十三天:DualRing: Enabling Subtle and Expressive Hand Interaction with Dual IMU Rings
  17. 那个丧心病狂的红蓝眼睛逻辑问题推理:第N天有N个红眼睛自杀,还是什么都不会发生?
  18. 苹果笔记本怎么查看计算机基本信息,怎么区分查找苹果电脑笔记本macBook pro的年份、型号及序列号...
  19. pe下找不到ssd硬盘_进入pe后找不到固态硬盘怎么解决
  20. 压缩包密码如何加密解密

热门文章

  1. 20佳精美404错误页面设计欣赏
  2. WebPart中的ReplaceTokens 方法
  3. 算法试题 - 找出字符流中第一个不重复的元素
  4. Cant get connection to Zookeeper
  5. ubuntu19.10锁屏时间调节
  6. 固态+机械(uefi类型的bios),用easybcd安装win10+ubuntu16.04双系统
  7. 模态识别分析:随机减量法/ITD法
  8. jsp调用controller方法_SpringMVC五大核心组件及调用过程
  9. firebird 行级锁问题_MySQL 锁
  10. Maven仓库搭建(二):GitHub、又拍云、七牛云存储