CMAKE 配置选项
CMake Configuration Options
注:
本文翻译自 dcmtk_wiki: Howto_CMakeConfiguration.
DCMTK版本(原文):dcmtk-3.6.0 CMAKE版本(原文):CMake-2.8.0
DCMTK版本(译者):dcmtk-3.6.0 DCMTK版本(译者):CMake-3.7.0
当我们准备用CMAKE编译DCMTK时,会显示一些配置选项。如果看起来没什么问题的话 ------ 哈哈哈,别担心,它还没配置好呢 :-) 下面将会是一个概览,用于介绍CMAKE中每个选项的含义和怎样选择才更合理。
Introduction
注意:CMake本身并不会编译DCMTK,它被用来生成项目文件(例如.用于 Visual Studio-Windows,Makefile-Unix, Xcode-Mac OS X),这些项目文件随后就可以使用编译器进行编译了。编译器该如何配置和管理DCMTK呢?不用担心,大多数的项目配置工作已经在DCMTK自带的CMAKEList.txt中完成了。
然而,还是有一些选项留给你来改变编译器以及DCMTK的编译过程。如果你确实不care那些特殊功能的话,你仅需要保持默认设置,然后忽略掉那些额外功能。如果你有兴趣的话,可以瞧一瞧下面的解释。
Pre-Configuration
这就是你初次启动CMake(cmake-gui)的样子。
在这一步的配置过程中,只有两行需要填写,以下是他们的用途:
- "Where is the source code":请在这添加DCMTK的资源文件目录,它应该在你硬盘的某个地方。注意,CMake已经支持斜杠了。
- "Where to build the binaries":在这添加的一个目录,CMake会将生成的DCMTK项目文件放在哪里。当我们开始编译的时,所有的中间和结果文件(二进制)都将被放置在这。这不是说你把DCMTK安装到这里了,那要在稍后的配置中设置呢。
现在,点击 Configure。
Type of project file
现在,CMake 将会问你,要生成什么类型的项目文件呢? 给出的列表可能因CMake版本和操作系统的不同而存在一些差异。
Windows
在Windows下,大多时候我们使用的都是Visual Studio,DCMTK支持Visual Studio 6 到Visual Studio 2010注1. 确保你已经安装了你选择的版本,否则CMake在测试设置的时候,将会还给你一个 failure。相信你可以搞到一个能工作的VS版本。
当然,生成一个Windows下的NMake Makefiles也是可行的,如果你感兴趣,可以在英文版本中找到它。
Unix-like systems
在Unix下,你应该选择Unix Makefiles。 这将允许你在稍后使用命令行下的‘make’命令来编译DCMTK。当然,你或许会选择生成KDevelop 项目文件,它可能会工作,但我们并没有对他进行完全的测试。
Mac OS X
如果是在Mac OS X下构建项目,你可以在Unix Makefiles 或XCode works中任选一个。Mac OS X 遵循POSIX标准,所以它仍旧是Unix家的;当然,作为Apple的标准可视化开发平台,XCode 的支持也是无可厚非的。不管你选了哪一个,DCMTK都应该能很好的工作。
The fast way
如果你对细节不是很感兴趣,只是想用默认的设置来构建DCMTK项目。你可以直接点击generate,然后就会在之前设置的项目生成目录(Where to build the binaries)中获得你的项目。嗯,你在CMake中的任务也就结束了。
如果你对调整DCMTK的构建配置感兴趣的话,请继续阅读。
Prominent Configuration Options
现在,忽略掉”Search,Grouped和Advanced“。让我们从截屏中红色区域中的行开始,他们在编译DCMTK是起着非常重要的作用。
CMAKE_BACKWARDS_COMPATIBILITY: 用于构建DCMTK的CMake的最低版本要求。如果你使用较老的版本,在尝试生成项目时CMake会报错。
CMAKE_INSTALL_PREFIX:指示DCMTK稍后将会被安装在哪。这里的默认设置是不同的,取决于操作系统的类型,你也可以填入你自己的路径。请再次注意,DCMTK不是由CMake直接安装的。在你告诉你的构建系统去生成它时,你才会得到它。例如,你可以在Visual Studio中开始安装。
DCMTK_OVERWRITE_WIN32_COMPILER_FLAGS:如果你将要在Windows下用Visual Studio来编译项目的话,你或许会感兴趣。如果检测到是在Widows下工作的,DCMTK CMake 默认开启编译器标志。然而,如果你是一名老手,你或许会自己设置编译器标志。如果那真发生了,你就不能选择checkbox。在你知道你在做什么的时候,再这样做吧。
DCMTK_WITH_DOXYGEN:DCMTK API 文档是自动从DCMTK源文件中提取和生成的。为此,需要用到免费工具 doxygen。如果CMake在你的系统中找到了doxygen,这个选项就是开启的。例如,HTML API 文档可能将会被构建。如果没找到的话这个选项就是关闭的。如果你确信你的系统安装了doxygen,你可以手动的将doxygen.exe可执行文件所在的路径添加到这里。
Third party libraries
DCMTK没有三方库也可以很好的工作。然而,如果没有他们的话,一些工具将会失去其扩展功能,另一些将不能正常工作(如果你尝试的话,他们会告诉你他们不能)。你能从DCMTK官网获得Windows版的预编译版本的DCMTK三方库(查看”support libraries“)。对于其他系统来说,他们可以自己安装或编译。
下列的库可能被DCMTK使用:
- OpenSSL
- libpng
- libtiff
- libxml
- zlib
在CMake的配置窗口中,他们中的每一个都有两个不同的选项:
- DCMTK_WITH_XXX(XXX是OPENSSL,LIBPNG,LIBTIFF,LIBXML或ZLIB):禁用或启用每个支持库。在默认情况下是启用或禁用的,取决于CMake是否在你的系统中找到了相应的库。
- WITH_XXXINC(XXX是OPENSSL, LIBPNG, LIBTIFF, LIBXML或ZLIB):如果CMake在你的系统找到了库,库所在的路径将填充在这里。如果出现的是WITH_XXXINC_NOTFOUND,你可以自己添加库的路径到这里。如果这样做了,为了保证库被编译,你还需要检查DCMTK_WITH_XXX处于开启状态。
如果你修改了某些路径,CMake将会遗忘之前你手动配置的路径。
Private Tags
这是一个可有可无的标签,对应DCMTK为增强其灵活性而设置的私有标签。如果你有兴趣,可以阅读原文 Private Tags .
Threads
DCMTK由他自己的跨平台的,线程相关的类。例如:信号(OFSemaphare), 互斥锁(OFMutex)等等。你可以通过选择/不选择 DCMTK_WITH_THREADS来开启/关闭它们。
需要注意的是:DCMTK没有线程库也能正常运转。但如果你想将DCMTK添加至多线程运行的程序中,那么你需要启用DCMTK的线程功能来保护DCMTK内部数据的安全。
Executable/Library Output Path
EXECUTABLE_OUTPUT_PATH:预定义的CMake变量,用于配置项目的可执行文件输出目录。
LIBRARY_OUTPUT_PATH:预定义的CMake变量,用于配置项目的静态库输出目录。
注1:3.6.0版本是2011年发布的,支持的VS版本是Visual Studio 2006 - Visual Studio 2010。最新预览版的VS版本已提升至Visual Studio 2010- Visual Studio 2015.
CMAKE 配置选项的更多相关文章
- cmake 查看配置选项
cmake 查看配置选项可以用如下命令 cmake . -LH 查看help > cmake -h cmake version 2.6-patch 4 Usage cmake [optio ...
- Qt5.7.0配置选项(configure非常详细的参数)
configure是一个命令行工具,用于配置Qt编译到指定平台.configure必须运行于Qt源码根目录.当运行configure时,编译源码使用的是所选工具链中的make工具. 一.源码目录.编译 ...
- Linux-4.4-x86_64 内核配置选项简介【转】
转自:http://fx114.net/qa-188-150553.aspx 本篇文章主要介绍了"Linux-4.4-x86_64 内核配置选项简介",主要涉及到Linux-4.4 ...
- SQL Serve里你总要去改变的3个配置选项
你用安装向导安装了全新的SQL Server,最后你点击了完成按钮.哇噢~~~现在我们可以把我们的服务器进入生产了!抱歉,那并不是真的,因为你的全新SQL Server默认配置是错误的. 是的,你没看 ...
- 理解GRUB2工作原理及配置选项与方法
GRUB2是借鉴GRUB改写到更加安全强大到多系统引导程序,现在大部分较新的Linux发行版都是使用GRUB2作为引导程序的.GRUB2采用了模块化设计,使得GRUB2核心更加精炼,使用更加灵活,同时 ...
- SQL Server安装完成后3个需要立即修改的配置选项(转载)
你用安装向导安装了全新的SQL Server,最后你点击了完成按钮.哇噢~~~现在我们可以把我们的服务器进入生产了!抱歉,那并不是真的,因为你的全新SQL Server默认配置是错误的. 是的,你没看 ...
- set_include_path — 设置 include_path 配置选项为当前脚本设置 include_path 运行时的配置选项。
说明 string set_include_path ( string $new_include_path ) 为当前脚本设置 include_path 运行时的配置选项. 参数 new_includ ...
- nodejs的mysql模块学习(三)数据库连接配置选项详解
连接选项 当在创建数据连接的时候 第一种大多数人用的方法 let mysql = require('mysql'); let connection = mysql.createConnection({ ...
- Android Gradle 配置选项合集
//让gradle 引入构建安卓app的插件 apply plugin: 'com.android.application' //自定义变量, 使用的时候不需要 ext 前缀 ext { minSdk ...
随机推荐
- git clone错误
git clone错误 Initialized empty Git repository in ***/.git/ error: The requested URL returned error: 4 ...
- 第二章 搭建Android开发环境
这一章为我们讲解了如何搭建Android开发环境. 首先要了解的是Android底层开发需要哪些工具:搭建android应用程序开发环境.android NDK开发环境和交叉编译环境,前两个用来测试L ...
- 硬件抽象层——HAL
(一)为什么要在android中加入HAL Linux系统中Linux驱动有两种类型的代码:访问硬件寄存器的代码——调用的Linux内核的标准函数进行的标准操作 业务逻辑代码——有些企业或个人并不想 ...
- coding题都在考察我们的什么技能
其实不是都在考我们的算法设计,有的时候算法简单,但是coding却可能不那么简单,比如下面这道题目: 题:写一个把字符串的IP地址变成32位整数的函数,要求考察程序健壮性. 这题初看起来一点都不难,但 ...
- Linux内核分析——进程描述与创建
20135125陈智威 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验内容 ...
- google软件测试之道--读后笔记
看完google软件测试之道,以前有认真看过一次,今天又重新看了一遍. 在google,测试人员严格区分为SET和TE.SET前期深度参与项目的开发,推动开发人员的自测,从破坏者的角度寻 ...
- Myeclipse+AJAX+Servlet
最近刚开始学AJAX的知识,这里介绍一个简单的Myeclipse+AJAX+Servlet项目. 此项目包含3个文件:index.jsp.check.java.还有一个需要配置的文件是:web.xml ...
- C#栈
线性表.栈和队列这三种数据结构的数据元素以及数据元素间的逻辑关系完全相同,差别是线性表的操作不受限制,而栈和队列的操作受到限制.栈的操作只能在表的一端进行, 队列的插入操作在表的一端进行而其它操作在表 ...
- 12、c#中事务及回滚
public void UpdateContactTableByDataSet(DataSet ds, string strTblName) { try { SqlDataAdapter myAdap ...
- Android Handler 最佳的理解资料