• visual studio 解决方案项目结构部署和配置


      在实际的企业项目,一个解决方案里面由几个项目组成:产生静态或者动态链接库的项目、测试用例、产生执行文件的项目、当然还有一些开源的第三方库等。此时,我们需要对解决方案作一定的配置,使得解决方案结构清晰、层次分明,也便于项目维护和多人协作。

    一、VS中项目设置中使用的宏:

      SolutionDir --- 解决方案目录

      ProjectDir  ---  项目目录

      ProjectName  ---  项目名字

      ConfigurationName   ---   置名字,通常是Debug或者Release

      IntDir   ---   编译器使用的中间目录,产出obj文件

      OutDir   ---   链接器使用的输出目录

      TargetDir目标输出文件所在的目录

      TargetExt目标输出的扩展名

      TargetFileName目标输出文件名,包括扩展名

      TargetName目标输出名,不包括扩展名

      TargetPath目标输出文件的全路径名

    二、下面是文件目录(例子)

    Bin:程序文件(库文件和可执行文件等)

    Doc:项目文档(需求分析文档等)

    Include:库的头文件

    Lib:解决方案中生成的库

    Tmp:编译连接生成的中间临时文件(Complie、Link)

    Vee:解决方案的源代码项目目录(库项目、可执行、第三方库)

    三、具体宏配置

    在配置项目属性的时候选择所有配置,这样不用Debug和Release都单独去配置。下面是详细配置

    1--常规

    输出目录:$(SolutionDir)..\Tmp\Link\$(ProjectName)\$(ConfigurationName)

    中间目录:$(SolutionDir)..\Tmp\Compile\$(ProjectName)\$(ConfigurationName)

    2--调试

    命令:$(SolutionDir)..\Bin\$(ConfigurationName)\$(TargetFileName)

    命令参数:(启动参数设置,例如:-d,127.0.0.1 2046等调试参数,地址端口等)

    工作目录:$(SolutionDir)..\Bin\$(ConfigurationName)

    3--H文件目录:项目——配置属性——C/C++——常规

    在“附加包含目录”中加入H文件所在的文件夹$(SolutionDir)..\Include

    --LIB目录:“项目——配置属性——链接器——常规”,

    在“附加库目录”中加入LIB所在目录 "$(SolutionDir)..\Lib\$(ConfigurationName)

    然后“链接器”中找到“输入”,在“附加依赖项”中加入VeSkin.lib

    或用

    #pragma comment(lib," VeSkin.lib")

    4--连接器--常规

    输出文件:$(OutDir)\$(ProjectName).dll

    --连接器--高级

    导入库:$(TargetDir)$(TargetName).lib

    5--生成后事件:

    copy $(TargetPath) $(SolutionDir)..\Bin\$(ConfigurationName)\;

    copy $(TargetDir)$(TargetName).lib $(SolutionDir)..\Bin\$(ConfigurationName)\;

    copy $(TargetPath) $(SolutionDir)..\Lib\$(ConfigurationName)\;

    copy $(TargetDir)$(TargetName).lib $(SolutionDir)..\Lib\$(ConfigurationName)\;

    注:在协同开发过程中,拷贝工程到新的电脑或者从SVNcheck下来的工程,本地的Vs会重新生成一个个人设置文件B文件(Vee.vcproj.机器名B.用户名B.user),这个文件和之前A文件(Vee.vcproj.机器名A.用户名A.user)是不一样的。同步的方法是,关闭Vs,删除新生成的B文件,把A文件改成(Vee.vcproj.user),然后重新打开Vs既可以同步了。

      很久在这里就注册了,平时也常来园子看看。突然觉得自己也应该学习写文章,慢慢开始经营自己的博客。

      以后慢慢深入具体的项目经验。加油!

  • 相关阅读:
    Java ConcurrentModificationException 异常分析与解决方案
    android studio 怎么做屏幕适配?
    java Class.getSimpleName() 的用法
    LeetCode——Remove Element
    用WidgeDuino创建一个SCADA(监控与数据採集)系统
    【Oracle】OCR的备份和恢复之导出导入
    Java大数类介绍
    POJ 1113 Wall 凸包
    OPENCV中滑动条的使用
    Android
  • 原文地址:https://www.cnblogs.com/alylee/p/VsSolutionConfig.html
Copyright © 2020-2023  润新知