转: VS 解决方案目录结构设置

https://www.cnblogs.com/zuibunan/p/3843459.html

下面的文章也有介绍

https://blog.csdn.net/lp310018931/article/details/47991759

https://www.cnblogs.com/ljy339/p/9808482.html

3rd 目录下需要手动创建

bin目录下的目录需要手动创建

命令 不要配置 md $(SolutionDir)..in$(ConfigurationName)

配置属性 --> 常规 --> 中间目录: $(SolutionDir)..	empcompile$(ConfigurationName) 修改ConfigurationName为Configuration
配置属性 --> 常规 --> 输出目录: $(SolutionDir)..	emplink$(ConfigurationName)修改ConfigurationName为Configuration
配置属性 --> 调试 --> 命令: $(SolutionDir)..in$(ConfigurationName)$(TargetFileName) 修改ConfigurationName为Configuration
配置属性 --> 调试 --> 工作目录: $(SolutionDir)..in$(ConfigurationName) 修改ConfigurationName为Configuration
 
涉及到的配置:
项目编译时使用的中间目录;
项目链接的输出目录;
项目编译结束后,拷贝生成的 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)

  

原文地址:https://www.cnblogs.com/swing07/p/10955027.html