快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

澳门新葡亰平台游戏b_龟发之家论坛



1.小序

1.1.编写目的

当开拓职员开始进行编码事情以澳门新葡亰平台游戏b及编码事情的历程中,都必要根据工程的必要设置设置设备摆设摆设各类事情路径,如引入第三方库、输诞天生的头文件和库文件等。曩昔部分开拓职员对工程路径的定义对照随意,相称一部分应用的是绝对路径。假如只是单个开拓职员完成一个单一的功能,这种做法看起来没有什么显着的毛病。然则,假如是数个开拓职员来相助合营完成一个功能和布局都很繁杂的工程时,这种做法的弊端就凸显出来。一个异常显着的问题便是:开拓职员A将他的工程交给开拓职员B编译时,如工程定义应用了绝对路径,除非开拓职员B的谋略机与A的谋略机具有完全相同的文件组织布局,否则一次性编译经由过程是弗成能。别的,澳门新葡亰平台游戏b当开拓职员在一长串的“Can’t find …”或者“XXX undefined”的差错与警告中焦头烂额时,大概只是由于一个不起眼的地方应用了绝对路径,或者是大年夜小写的差异。

是以,规范开拓职员的工程设置设置设备摆设摆设是很有需要的。经由过程规范的工程设置设置设备摆设摆设,所有开拓职员之间的工程是无缝毗连的,即任何一个开拓职员的工程拿到其他人的工程时,无须改动任何一个设置设置设备摆设摆设便可以一次性的编译成功。这样的规范操作无异可以大年夜大年夜削减团队成员经由过程代码交流时的不需要资源。别的,规范的工程设置设置设备摆设摆设也便于SubVersion版本节制系统的引入,经由过程引入SubVersion版本节制系统,可以和谐剂个研发团队的工程进度,节制产品的里程碑宣布。这统统,都从规范的工程设置设置设备摆设摆设开始。

1.2.参考资料

1. 《OpenSource SubVersion规范》

2. 《Visual Studio 2005编程指南》

2.目录布局

MyDevelopeFolder

├─Bin

│ ├─Debug

│ ├─Program

│ ├─Release

│ ├─UnicodeDebug

│ ├─UnicodeProgr澳门新葡亰平台游戏bam

│ └─UnicodeRelease

├─MySDK

│ ├─Include

│ │ ├─BCG

│ │ └─Boost

│ └─Lib

│ ├─Debug

│ │ ├─BCG

│ │ └─Boost

│ ├─Program

│ │ ├─BCG

│ │ └─Boost

│ ├─Release

│ │ ├─BCG

│ │ └─Boost

│ ├─UnicodeDebug

│ │ ├─BCG

│ │ └─Boost

│ ├─UnicodeProgram

│ │ ├─BCG

│ │ └─Boost

│ └─UnicodeRelease

│ ├─BCG

│ └─Boost

├─Project

│ ├─LibMyExample

│ │ └─Document

│ └─MyExampleApp

│ └─Document

├─Solution

└─Temp

├─Compile

└─Link

1. MyDevelopeFolder是开拓工程的根目录

2. Bin目录寄放所有动态链接库和可履行法度榜样,包括自己的产出和第三方库,按编译设置设置设备摆设摆设名称包括对应的子目录,如Debug、Release。别的,法度榜样运行历程中必要外部的数据文件和启动时必要的设置设置设备摆设摆设文件等等都可放于该目录

3. MySDK寄放产品项目依附、产出的.h文件和.lib文件。此中Lib目录下根据设置设置设备摆设摆设名称和第三方库名称对lib文件进行治理。如某项目应用BCG作为界面库,则BCG的头文件放置于“Include\BCG”下,不合版本的库文件置于“Lib\设置设置设备摆设摆设名\BCG”下;项目输出的lib文件直接位于“Lib\设置设置设备摆设摆设名”下。这样产品依附的不合开拓库所应用头文件与库文件和输出的头文件与库文件互相之间是自力、彼此不过问的。

4. Project是工程目录,用于寄放代码,按模块名组织次级目录。功能库工程一样平常的以“Lib”开首,以便与其它动态库差别。每个工程模块目录应包孕“Document”子目录,该目录下按必要增添“DBM”、“DOC”、“UML”三个子目录。“DBM”用于寄放与该模块相关的数据库设计文档,平日是PowerDesigner文档;“DOC”用于寄放与该模块相关的一样平常性阐明文档;“UML”用于寄放与该模块相关的UML设计文档,平日是Rational Rose文档。

5. Solution是办理规划目录,用于寄放产品的完备办理规划。平日应用办理规划可以天生该产品的所有版本。

6. Temp是用于编译天生的中心目录,主要寄放编译历程中天生的各类中心文件。

3.工程设置设置设备摆设摆设

根据调试信息与字符集的不合,一样平常的工程设置设置设备摆设摆设有六类,如下表所示

名称

字符集

是否包孕调试信息

是否包孕代码优化

Debug

ANSI

YES

NO

Release

ANSI

YES

YES

Program

ANSI

NO

YES

UnicodeDebug

UNICODE

YES

NO

UnicodeRelease

UNICODE

YES

YES

UnicodeProgram

UNICODE

NO

YES

4.属性设置设置设备摆设摆设

4.1.“老例”设置设置设备摆设摆设

输出目录: ..\..\Temp\Link\$(ProjectName)\$(ConfigurationName)

中心目录:..\..\Temp\Compile\$(ProjectName)\$(ConfigurationName)

4.2.“调试”设置设置设备摆设摆设

假如必要启动本模块进行调试,则“敕令”为:..\..\Bin\$(ConfigurationName)\$(TargetFileName)

4.3.“C/C++”设置设置设备摆设摆设

1) “附加包孕目录”:..\..\MineSDK\Include ,如有其它目录请用“;”距离,留意应用相对路径,严禁应用绝对路径。

2) 动态库应用导出宏导出/导入时,应在“预处置惩罚器”中定义导出宏,不得在代码文件中定义。导出宏的一样平常款式为“LIB_XXXXX”。

3) 一样平常环境下不保举应用预编译头。

4.4.“链接器”设置设置设备摆设摆设

1) “输出文件澳门新葡亰平台游戏b”:

a) 若为Debug版时:$(OutDir)\$(ProjectName)D.dll;

b) 若为Release版时:$(OutDir)\$(ProjectName).dll。

2) “附加库目录”:..\..\Bin\$(ConfigurationName);..\..\MySDK\Lib,如有其它目录请用“;”距离,留意应用相对路径,严格禁止应用本地绝对路径。

3) “模块定义文件”:一样平常不应用模块定义.def文件,本项可选澳门新葡亰平台游戏b择“从默认设置设置设备摆设摆设…”。

4.5.“天肇事故”设置设置设备摆设摆设

一样平常必要设置设置设备摆设摆设的是“天生后事故”。任何一个工程模块的天生后事故都应包括以下内容:

1) copy $(TargetPath) ..\..\Bin\$(ConfigurationName)

2) 若有导出的Lib库文件,必要增添:copy $(TargetDir)$(TargetName).lib ..\..\MySDK\Lib

3) 若有导出的头文件,必要增添: copy myhead.h ..\..\MySDK\Include

详细文件名与路径视环境而定,然则严禁应用绝对路径。

5.附录:VC2005中可以应用的宏

ConfigurationName

设置设置设备摆设摆设名字,平日是Debug或者Release

IntDir

编译器应用的中心目录,产出obj文件

OutDir

链接器应用的输出目录

ProjectDir

项目目录

ProjectName

项目名字

SolutionDir

办理规划目录

TargetDir

目标输出文件所在的目录

TargetExt

目标输出的扩展名

TargetFileName

目标输出文件名,包括扩展名

TargetName

目标输出名,不包括扩展名

TargetPath

目标输出文件的全路径名

您可能还会对下面的文章感兴趣: