vcproj :是一个VC项目的项目文件。项目的信息(名称,依赖,编译设置等存储在这里)
solution:是解决方案,一个解决方案可以含有多个项目。这些项目可以是VC项目(vcproj),也可以是C#项目(csproj)等等。
总的来说:solution是比vcproj大的概念,一个solution可以包含多个vcproj。vcproj :是一个VC项目的项目文件。项目的信息(名称,依赖,编译设置等存储在这里)
solution:是解决方案,一个解决方案可以含有多个项目。这些项目可以是VC项目(vcproj),也可以是C#项目(csproj)等等。
vcproj文件是vs08或vs05的工程文件,而sln文件为vs08或vs05的的项目文件。vcproj的具体格式为xml格式,其中包含三个主要的节:platform,configuration,Files
platform:描述的只是x64,x86等不同的平台。
configuration:描述的是编译和链接器的环境配置信息。可以通过vs08或者vs05的项目属性进行设置,也可以手动的进行设置。
Files:描述的是编译时需要的各种cpp,h文件,其中也会分节点,Filter描述的是目录,Files描述的是具体的文件。
Configuration的相关说明:
Name
编译选项名称
Debug下通常为Debug|Win32
OutputDirectory
目标文件输出路径
默认为Debug
IntermediateDirectory
编译信息输出路径
默认为Debug
ConfigurationType
工程类型
1表示exe程序文件,2表示dll动态库文件,3表示lib静态库文件
UseOfMFC
表示是否使用MFC
0表示不使用MFC,1表示静态链接MFC,2表示动态链接MFC
CharacterSet
表示编码类型
1表示Unicode,2表示Ansi
Configuration的子节点全是Tool,每个子节点都有一个属性Name表示节点含义。这里面有两个子节点比较有用,一个是VCCLCompilerTool,表示编译信息,一个是VCLinkerTool,表示链接信息,其它的子节点用的不多。
VCCLCompilerTool的常用属性如下:
属性
含义
说明
Optimization
优化选项
可以为0、1、2、3、4
PreprocessorDefinitions
预定义标记
通常都是WIN32 _WINDOWS _DEBUG
MinimalRebuild
是否使用最小编译
设置为TRUE能节约编译时间
BasicRuntimeChecks
运行时检测,包括栈和未初始化变量等
默认为3
RuntimeLibrary
程序运行时
选择多(单)线程,(非)调试,DLL(EXE)类型
TreatWChar_tAsBuiltInType
是否将wchar_t当作内置类型
如果为FALSE,wchar_t被认为是unsigned short类型
ForceConformanceInForLoopScope
if和for循环中声明的变量的作用范围是否在循环内
7.1默认为FALSE,8.0默认为TRUE
UsePrecompiledHeader
预定义头文件设置
0表示不使用,1表示创建预定义头文件,2表示自动创建,3表示使用预定义头文件
PrecompiledHeaderThrough
预定义头文件名
通常都是stdafx.h,可以随意指定
PrecompiledHeaderFile
预编译信息文件名
默认为$(IntDir)/$(TargetName).pch
WarningLevel
警告级别
4
Detect64BitPortabilityProblems
检测是否兼容64位程序
FALSE
DebugInformationFormat
调试信息格式
Debug下通常设置为4,Release下可以设置为3
VCLinkerTool的常用属性如下:
属性
含义
说明
AdditionalDependencies
依赖lib文件
OutputFile
输出的目标文件
默认$(OutDir)/$(ProjectName).exe
LinkIncremental
增量编译
2
AdditionalLibraryDirectories
依赖lib的位置
GenerateDebugInformation
是否生成调试信息
通常都为TRUE
ProgramDatabaseFile
调试信息文件名称
$(IntDir)/$(ProjectName).pdb
SubSystem
子系统
1为控制台,2为Windows程序
ImportLibrary
导入的lib文件
默认$(IntDir)/$(ProjectName).lib
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)