Visual C++ 设置适合自己的解决方案目录结构

        Visual C++ 使用解决方案来管理项目,项目之间还可能有依赖关系,设置适合自己的解决方案目录结构,便于代码的管理、程序的发布。

下面开始一个虚拟解决方案设计:
        假设此解决方案有应用程序项目A,动态链接库项目B,静态链接库项目C,其中项目A依赖项目B和项目C,则构建解决方案项目结构如下图所示:

而目录结构则如下图所示:

Bin:存放所有动态链接库和可执行程序,分Debug和Release两个版本
A:应用程序项目文件夹
B:动态链接库项目文件夹
C:静态链接库项目文件夹
Doc:存放项目文档
Include:存放引用库的头文件
Lib:存放动态链接库的导入库、静态链接库
Temp:存放临时生成文件,其中Compile存放编译时的中间文件,Link存放链接时的输出文件
除了Doc需要自己建立外,其他文件夹无需手动建立。


项目结构创建步骤:
1.创建一个新应用程序项目,名称A,解决方案名称为Work,如下图所示:

2.在"解决方案资源管理器"右键"解决方案Work","添加"→"新建项目"→"Win32"→"Win32 项目",名称为B,在"应用程序设置"选择"DLL"和"空项目";
3.同样的方式添加一个"Win32项目",名称为C,在"应用程序设置"选择"静态库",去掉"预编译头"选项;
4.项目结构如下图所示:


项目属性设置

配置项目A的属性
1.配置"所有配置","常规",
输出目录:$(SolutionDir)Temp\Link\$(ProjectName)\$(PlatformName)\$(ConfigurationName)
中间目录:$(SolutionDir)Temp\Compile\$(ProjectName)\$(PlatformName)\$(ConfigurationName)

2."生成事件"→"生成后事件",
命令行:echo D | xcopy "$(TargetPath)" "$(SolutionDir)Bin\$(PlatformName)\$(ConfigurationName)" /y
3."C/C++"→"常规",
附加包含目录:$(SolutionDir)Include
4."链接器"→"常规",
附加库目录:$(SolutionDir)Lib\$(PlatformName)
5."调试",
命令:$(SolutionDir)Bin\$(PlatformName)\$(ConfigurationName)\$(TargetFileName)
工作目录:$(SolutionDir)Bin\$(PlatformName)\$(ConfigurationName)

配置项目B的属性
1.配置"所有配置","常规"下,
输出目录:$(SolutionDir)Temp\Link\$(ProjectName)\$(PlatformName)\$(ConfigurationName)
中间目录:$(SolutionDir)Temp\Compile\$(ProjectName)\$(PlatformName)\$(ConfigurationName)
2.【VS2008】配置"Debug","链接器"→"常规"下,
输出文件:$(SolutionDir)Temp\Link\$(ProjectName)\$(PlatformName)\$(ConfigurationName)\$(ProjectName)d.dll
【VS2010及以上】配置"Debug","常规"下,
目标文件名:$(ProjectName)d
3.配置"所有配置","生成事件"→"生成后事件"下,命令行:
echo D | xcopy "$(TargetPath)" "$(SolutionDir)Bin\$(PlatformName)\$(ConfigurationName)" /y
echo D | xcopy "$(TargetDir)$(TargetName).lib" "$(SolutionDir)Lib\$(PlatformName)" /y
echo D | xcopy "$(ProjectDir)B.h" "$(SolutionDir)Include" /y 
第三行为xcopy动态库的头文件,实际要根据所需进行改动名称。

配置项目C的属性
1.配置"所有配置","常规"下,
输出目录:$(SolutionDir)Temp\Link\$(ProjectName)\$(PlatformName)\$(ConfigurationName)
中间目录:$(SolutionDir)Temp\Compile\$(ProjectName)\$(PlatformName)\$(ConfigurationName)
2.【VS2008】配置"Debug","管理员"→"常规"下,
输出文件:$(SolutionDir)Temp\Link\$(ProjectName)\$(PlatformName)\$(ConfigurationName)\$(ProjectName)d.lib
【VS2010及以上】配置"Debug","常规"下,
目标文件名:$(ProjectName)d
3.配置"所有配置","生成事件"→"生成后事件"下,
命令行:
echo D | xcopy "$(TargetPath)" "$(SolutionDir)Lib\$(PlatformName)" /y
echo D | xcopy "$(ProjectDir)C.h" "$(SolutionDir)Include" /y 
第二行为xcopy静态库的头文件,实际要根据所需进行改动名称。

最后设置项目生成顺序
菜单栏→"项目"→"项目依赖项",项目A依赖于B和C,如下图所示:

编译生成,可看到如下结果:

用tree命令看下文件夹结构:


其他网上关于目录结构配置资料:
1.VC 2005 解决方案的目录结构设置和管理  http://blog.csdn.net/rogeryi/article/details/1481923
2.VC项目管理:目录结构  http://www.fancystar.org
3.VS2008中VC项目文件目录的管理  http://qimo601.iteye.com/blog/1059299
4.研发规范-VC  http://wenku.baidu.com/view/26f6c789680203d8ce2f2414.html

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值