Visual C++ 设置适合自己的解决方案目录结构
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
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
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
Visual C++ 设置适合自己的解决方案目录结构相关推荐
- 如何在Visual Studio中“添加现有项”整个目录结构?
我有一个独立于任何C#项目的独立文件集,它们位于复杂的嵌套目录结构中. 我想以这种格式将它们添加到我正在处理的ASP.NET Web应用程序中的不同目录中; 同时保留相同的结构. 所以,我将文件夹复制 ...
- VC++2005项目的目录结构设置
2019独角兽企业重金招聘Python工程师标准>>> VC++2005项目的目录结构设置 作者:flyfish 2010-03-23 星期二 为了方便程序的打包和代码转移,需要手动 ...
- 【linux 】添加开机启动项的方法|Linux目录结构和存放哪些文件
目录 linux 添加开机启动项的方法 编辑文件 /etc/rc.local 在/etc/init.d目录下添加自启动脚本 每次登录自动执行 通过chkconfig命令设置 把脚本注册为系统服务 在c ...
- Visual Studio解决方案的目录结构设置和管理
Visual Studio解决方案的目录结构设置和管理 参考文章: (1)Visual Studio解决方案的目录结构设置和管理 (2)https://www.cnblogs.com/CHNMurph ...
- Visual Studio中新建方案、项目目录设置、VC++目录、相对路径设置
一.新建一个解决方案,解决方案里面有一个项目/工程 1.首先新建一个项目: 进入文件中,可以看到: (1)解决方案文件夹 (2)进入解决方案文件夹后: 解决方案与工程 在这之前先了解一个概念:解决方案 ...
- Vs 2008 解决方案的目录结构设置和管理
Vs 2008 解决方案的目录结构设置和管理 转载:http://www.cnblogs.com/wuqi924/archive/2010/12/03/1895244.html 解决方案与项目: 从V ...
- VS解决方案的目录结构设置和管理
一个中等规模的解决方案通常都会包含多个项目,其中一些项目产出静态库,一些产出动态库,一些用于单元测试,还有的产出最终的应用程序执行档.除此以外,根据项目的需求,还会使用一些第三方的库. 所以为解决方案 ...
- [转]Vs解决方案的目录结构设置和管理
[转]Vs解决方案的目录结构设置和管理 参考文章: (1)[转]Vs解决方案的目录结构设置和管理 (2)https://www.cnblogs.com/dybk/p/8143461.html 备忘一下 ...
- [转]VisualStudio如何组织解决方案的目录结构
*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...
最新文章
- python项目实战:获取本机所有IP地址的方法
- Exchange企业实战技巧(27)邮件中使用数字签名和邮件加密功能
- 题解——loj6278 数列分块入门2 (分块)
- HDU 1240 Asteroids!(DFS简单搜索)
- SparkStreaming 入门案例之wordcount
- mysql5.5连不上主机_mysql5.5主从同步排错
- 算法-第四版-练习1.2.3解答
- 莎士比亚名言录(中英对照整理版,加出处by 澈)
- PHP屏蔽错误警告提示
- android手机禁止休眠_Android的屏幕禁止休眠和锁屏的方法
- 微信小程序访问豆瓣电影API 403 400
- 南宁市第二十六中学:教研路漫漫,花香伴我行
- PLC学习 20191229
- 从Solidworks中导出的.wrl文件无法打开?
- 各种JDBC连接池配置参数比较
- iText生成pdf文书
- ninja介绍及使用
- [SOLO ]SOLO: Segmenting Objects by Locations代码解读笔记(ECCV. 2020)
- Ion ABI 变更
- 关于vec(ABC)=(C ^{T}⊗A)vec(B)的计算
热门文章
- 使用Python批量压缩图片
- 一入前端深似海,从此红尘是路人系列第七弹之孤独的剑客-单例模式
- java 自定义编译注解 进行代码检查
- java UDP 使用示例
- ‘packaging‘ with value ‘jar‘ is invalid. Aggregator projects require ‘pom‘ as packaging.
- 怎么不保存退出、保存退出vim、vi编辑
- 爬虫究竟是合法还是违法的?
- 如何使用CSS3 Border Radius属性
- 原型制作是什么意思_制作电路原型的最佳方法是什么?
- 10个Python面试常问的问题