• VS 解决方案目录结构设置


    涉及到的配置:
    项目编译时使用的中间目录;
    项目链接的输出目录;
    项目编译结束后,拷贝生成的 dll 和 lib 到指定目录;
    项目编译结束后,拷贝需要的 dll 到输出目录;
    设置项目的工作目录;
    设置调试时执行的 exe 和工作目录;
    
    
    配置时使用到的一些宏:
    ConfigurationName   配置名字,通常是Debug或者Release
    IntDir              编译器使用的中间目录,产出obj文件
    OutDir              链接器使用的输出目录
    ProjectDir          项目目录
    ProjectName         项目名字
    SolutionDir         解决方案目录
    TargetDir           目标输出文件所在的目录
    TargetExt           目标输出的扩展名
    TargetFileName      目标输出文件名,包括扩展名
    TargetName          目标输出名,不包括扩展名
    TargetPath          目标输出文件的全路径名
    
    
    下面以 Sticker 为例展示目录结构设置的过程:
    Sticker 目录结构:
    Sticker
        +-- 3rd (第三方库)
        |   +-- dll
        |   |   +-- debug
        |   |   +-- release
        |   +-- lib
        |   |   +-- debug
        |   |   +-- release
        |   +-- include
        |
        +-- src (源码)
        |   +-- Sticker
        |   |   +-- Sticker 项目的代码
        |   +-- StickerLibrary
        |   |   +-- StickerLibrary 项目的代码
        |   +-- Sticker.sln
        |
        +-- xar (脚本)
        |   +-- Sticker
        |   +-- ...
        |
        +-- doc (文档)
        |
        +-- bin (可执行文件)
        |   +-- debug
        |   +-- release
        |
        +-- temp (中间目录)
            +-- compile
            |   +-- debug
            |   +-- release
            +-- link
                +-- debug
                +-- release
    
    1. 创建文件夹 Stickersrc
    2. 创建一个空的解决方案 Sticker.sln ,放入 Stickersrc 中
    3. 创建项目 Sticker
    4. 属性 --> 配置 设定为“所有配置”,这样可以同时设定 debug
    elease 下的配置
    5. 配置属性 --> 常规 --> 中间目录: $(SolutionDir)..	empcompile$(ConfigurationName)
    6. 配置属性 --> 常规 --> 输出目录: $(SolutionDir)..	emplink$(ConfigurationName)
    7. 配置属性 --> C/C++ --> 常规 --> 附加包含目录: "$(SolutionDir)..3rdinclude"
    8. 配置属性 --> 链接器 --> 常规 --> 附加库目录: "$(SolutionDir)..3rdlib$(ConfigurationName)"
    9. 配置属性 --> 链接器 --> 输入 --> 附加依赖项: xxx1.lib xxx2.lib xxx3.lib
    10. 配置属性 --> 生成事件 --> 生成后事件 --> 命令行: 
        md $(SolutionDir)..in$(ConfigurationName)
        copy $(TargetPath) $(SolutionDir)..in$(ConfigurationName)
        copy $(SolutionDir)..3rddll$(ConfigurationName) $(SolutionDir)..in$(ConfigurationName)
    11. 配置属性 --> 调试 --> 命令: $(SolutionDir)..in$(ConfigurationName)$(TargetFileName)
    12. 配置属性 --> 调试 --> 工作目录: $(SolutionDir)..in$(ConfigurationName)
  • 相关阅读:
    JavaScript constructor prototyoe
    bootstrap固定响应式导航
    跨浏览器事件处理程序
    原生JS实现字符串分割
    关于css里的class和id
    js动态创建表格方法
    关于css的默认宽度
    js字符串大小写转换
    C++类的一个重要成员:静态成员(二)——静态成员的定义
    C++ 类的一个重要成员:静态成员(一)
  • 原文地址:https://www.cnblogs.com/zuibunan/p/3843459.html
Copyright © 2020-2023  润新知