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


    isual 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)TempLink$(ProjectName)$(ConfigurationName)
    中间目录:$(SolutionDir)TempCompile$(ProjectName)$(ConfigurationName)

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

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

    配置项目C的属性
    1.配置"所有配置","常规"下,
    输出目录:$(SolutionDir)TempLink$(ProjectName)$(ConfigurationName)
    中间目录:$(SolutionDir)TempCompile$(ProjectName)$(ConfigurationName)
    2.配置"Debug","管理员"→"常规"下,
    输出文件:$(SolutionDir)TempLink$(ProjectName)$(ConfigurationName)$(ProjectName)d.lib
    3.配置"所有配置","生成事件"→"生成后事件"下,
    命令行:
    echo D | xcopy "$(TargetPath)" "$(SolutionDir)Lib" /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/2010/07/25/vc%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86%EF%BC%9A%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84/
    3.VS2008中VC项目文件目录的管理  http://qimo601.iteye.com/blog/1059299
    4.研发规范-VC  http://wenku.baidu.com/view/26f6c789680203d8ce2f2414.html

  • 相关阅读:
    基于Acer安装双系统。
    js
    “su: cannot set user id: Resource temporarily unavailable”处理及limits.conf说明
    Oracle关于内存参数及大页设置的相关概念和设置之hugepage概念和配置
    Configure NGINX with Exchange 2010, 2013 and 2016 (including RPC / Outlook Anywhere access)
    基于zabbix_agent对主机进程监控的脚本及配置说明
    Zabbix基于CX_ORACLE对Oracle数据库的监控配置
    修改oracle数据库SGA和PGA大小
    使用zabbix监控oracle数据库
    Oracle DG切换
  • 原文地址:https://www.cnblogs.com/lidabo/p/3489009.html
Copyright © 2020-2023  润新知