背景:
最近抽空想了解一下DCM4CHEE开源DICOM框架,怎奈配置了许久也没有成功(Σ( ° △ °|||)︴)。可能多半原因是因为首次接触Java开发环境,毕竟跟C系列(C/C++/C#)不同,但这次失败经历,让我愈发感受到自己对大型项目的快速熟悉和把握能力的欠缺,其实这也正是我学习各种开源项目的出发点。加上之前曾有CSDN博友询问关于ClearCanvas配置问题,所以决定趁着周末详细整理一下配置、学习、使用,甚至扩展开源项目的流程,算是对此次配置DCM4CHEE经验的一次总结和延伸。
Compile/Link/Build:
Compile&Link:
作为软件开发人员,无论前台、后台,对于代码如何转换成可执行应用应该了然于心,主要包括编译、链接两个过程。编译,即compile,就是将人类读得懂的语言转换成二进制以便计算机读取,常见的说法是“从源语言编写的源程序产生目标程序的过程”,这一转换过程主要包括词法分析、语法分析、语义分析、代码优化、目标代码生成五大过程,就像我们阅读文章时的思维过程。链接,link,将编译生成的各个目标文件进行组合连接,使其成为可独立运行的统一整体。
编译和链接是相辅相成,缺一不可的,或者说两者的功能有所对接或者融合。通常一种操作或处理流程的出现,例如先编译后链接,不是由某位先人凭空设计出来的,而是在实际应用过程中为了提高效率尽最大可能满足人类”懒“的天性而逐渐形成的。就拿编译和链接来说,如果我的目标很简单,简单到用汇编语言只有一条指令:HLT,让处理器进入休息状态。对于这种状态下就没有必要先编译后链接(当然这里是理想状态,因为即使是一条汇编指令也需要其他相关库的支持,需要彼此之间进行链接),编译直接生成二进制指令给CPU即可。随着科技的进步,人们的需求越来越复杂,发展到今天一个项目有效代码数应多大几万、甚至几十万行,项目目录结果复杂,代码文件众多,如果还是逐个文件编译,到最后链接,想