分享一下我老师大神的人工智能教程!零基础,通俗易懂!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++ 设置适合自己的解决方案目录结构相关推荐

  1. 如何在Visual Studio中“添加现有项”整个目录结构?

    我有一个独立于任何C#项目的独立文件集,它们位于复杂的嵌套目录结构中. 我想以这种格式将它们添加到我正在处理的ASP.NET Web应用程序中的不同目录中; 同时保留相同的结构. 所以,我将文件夹复制 ...

  2. VC++2005项目的目录结构设置

    2019独角兽企业重金招聘Python工程师标准>>> VC++2005项目的目录结构设置 作者:flyfish 2010-03-23 星期二 为了方便程序的打包和代码转移,需要手动 ...

  3. 【linux 】添加开机启动项的方法|Linux目录结构和存放哪些文件

    目录 linux 添加开机启动项的方法 编辑文件 /etc/rc.local 在/etc/init.d目录下添加自启动脚本 每次登录自动执行 通过chkconfig命令设置 把脚本注册为系统服务 在c ...

  4. Visual Studio解决方案的目录结构设置和管理

    Visual Studio解决方案的目录结构设置和管理 参考文章: (1)Visual Studio解决方案的目录结构设置和管理 (2)https://www.cnblogs.com/CHNMurph ...

  5. Visual Studio中新建方案、项目目录设置、VC++目录、相对路径设置

    一.新建一个解决方案,解决方案里面有一个项目/工程 1.首先新建一个项目: 进入文件中,可以看到: (1)解决方案文件夹 (2)进入解决方案文件夹后: 解决方案与工程 在这之前先了解一个概念:解决方案 ...

  6. Vs 2008 解决方案的目录结构设置和管理

    Vs 2008 解决方案的目录结构设置和管理 转载:http://www.cnblogs.com/wuqi924/archive/2010/12/03/1895244.html 解决方案与项目: 从V ...

  7. VS解决方案的目录结构设置和管理

    一个中等规模的解决方案通常都会包含多个项目,其中一些项目产出静态库,一些产出动态库,一些用于单元测试,还有的产出最终的应用程序执行档.除此以外,根据项目的需求,还会使用一些第三方的库. 所以为解决方案 ...

  8. [转]Vs解决方案的目录结构设置和管理

    [转]Vs解决方案的目录结构设置和管理 参考文章: (1)[转]Vs解决方案的目录结构设置和管理 (2)https://www.cnblogs.com/dybk/p/8143461.html 备忘一下 ...

  9. [转]VisualStudio如何组织解决方案的目录结构

    *************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...

最新文章

  1. python项目实战:获取本机所有IP地址的方法
  2. Exchange企业实战技巧(27)邮件中使用数字签名和邮件加密功能
  3. 题解——loj6278 数列分块入门2 (分块)
  4. HDU 1240 Asteroids!(DFS简单搜索)
  5. SparkStreaming 入门案例之wordcount
  6. mysql5.5连不上主机_mysql5.5主从同步排错
  7. 算法-第四版-练习1.2.3解答
  8. 莎士比亚名言录(中英对照整理版,加出处by 澈)
  9. PHP屏蔽错误警告提示
  10. android手机禁止休眠_Android的屏幕禁止休眠和锁屏的方法
  11. 微信小程序访问豆瓣电影API 403 400
  12. 南宁市第二十六中学:教研路漫漫,花香伴我行
  13. PLC学习 20191229
  14. 从Solidworks中导出的.wrl文件无法打开?
  15. 各种JDBC连接池配置参数比较
  16. iText生成pdf文书
  17. ninja介绍及使用
  18. [SOLO ]SOLO: Segmenting Objects by Locations代码解读笔记(ECCV. 2020)
  19. Ion ABI 变更
  20. 关于vec(ABC)=(C ^{T}⊗A)vec(B)的计算

热门文章

  1. 使用Python批量压缩图片
  2. 一入前端深似海,从此红尘是路人系列第七弹之孤独的剑客-单例模式
  3. java 自定义编译注解 进行代码检查
  4. java UDP 使用示例
  5. ‘packaging‘ with value ‘jar‘ is invalid. Aggregator projects require ‘pom‘ as packaging.
  6. 怎么不保存退出、保存退出vim、vi编辑
  7. 爬虫究竟是合法还是违法的?
  8. 如何使用CSS3 Border Radius属性
  9. 原型制作是什么意思_制作电路原型的最佳方法是什么?
  10. 10个Python面试常问的问题