[C/C++] VS2017解决方案的目录结构配置

[参考文章] VS 解决方案目录结构设置

场景模拟

  1. 创建解决方案 animal.sln
  2. win32项目 dog_win32
  3. dll动态库项目 eat_dll
  4. lib静态库项目 drink_lib

效果截图

[C/C++] VS2017解决方案的目录结构配置_第1张图片
[C/C++] VS2017解决方案的目录结构配置_第2张图片
[C/C++] VS2017解决方案的目录结构配置_第3张图片
详细目录结构请下载源码(文章底部)

步骤

  1. 手动创建文件夹 animal
  2. 手动创建文件夹 animal/third_party(第三方库)
  3. 手动创建文件夹 animal/doc(文档)
  4. 创建空白解决方案,名字叫做animal,位置animal\,如图:
    [C/C++] VS2017解决方案的目录结构配置_第4张图片
    然后,关闭vs2017,更改animal文件夹名称为src,再打开vs2017
  5. 添加动态库项目eat_dll。
    右键解决方案->添加->新项目->Visual C++->Windows桌面->动态链接库(DLL),名称叫eat_dll
    [C/C++] VS2017解决方案的目录结构配置_第5张图片
    配置属性:
    a. 右键eat_dll->属性->配置(所有配置),平台(win32)
    b. 配置属性->常规
// 输出目录:
$(SolutionDir)..\temp\x86\link\$(ProjectName)\$(ConfigurationName)

// 中间目录:
$(SolutionDir)..\temp\x86\compile\$(ProjectName)\$(ConfigurationName)

c. 调试

// 命令
$(SolutionDir)..\bin\x86\$(ConfigurationName)\$(TargetFileName)
// 工作目录
$(SolutionDir)..\bin\x86\$(ConfigurationName)

d. C/C++ -> 常规 -> 附加包含目录

$(SolutionDir)..\third_party\include\第三方库名称(默认不需要配置此项)

e. 生成事件 -> 生成后事件

md $(SolutionDir)..\bin\x86\$(ConfigurationName)
md $(SolutionDir)..\third_party\include\$(ProjectName)
md $(SolutionDir)..\third_party\libs\$(ProjectName)
copy $(ProjectDir)$(ProjectName).h $(SolutionDir)..\third_party\include\$(ProjectName)
copy $(TargetDir)$(TargetName).dll $(SolutionDir)..\bin\x86\$(ConfigurationName)
copy $(TargetDir)$(TargetName).lib $(SolutionDir)..\bin\x86\$(ConfigurationName)

WIN64项目,把所有配置内容的x86换成x64即可

  1. 添加空白win32项目dog_win32。
    右键解决方案->添加->新项目->Visual C++->常规->空项目,名称叫dog_win32
    创建文件main.cc,代码如下:
#include 

#include "../../third_party/include/eat_dll/eat_dll.h"

#ifdef _DEBUG
#ifdef _WIN64
#pragma comment(lib, "../../bin/x64/Debug/eat_dll.lib")
#else
#pragma comment(lib, "../../bin/x86/Debug/eat_dll.lib")
#endif
#else
#ifdef _WIN64
#pragma comment(lib, "../../bin/x64/Release/eat_dll.lib")
#else
#pragma comment(lib, "../../bin/x86/Release/eat_dll.lib")
#endif
#endif 

int main()
{

    hello();

    getchar();
    return 0;
}

eat_dll的属性配置很多相同地方,下面列出不同之处
生成事件 -> 生成后事件

md $(SolutionDir)..\bin\x86\$(ConfigurationName)
copy $(TargetPath) $(SolutionDir)..\bin\x86\$(ConfigurationName)
  1. 添加静态库项目drink_lib,如图:
    [C/C++] VS2017解决方案的目录结构配置_第6张图片
    属性配置,和eat_dll的属性配置很多相同地方,下面列出不同之处
    生成事件 -> 生成后事件
md $(SolutionDir)..\bin\x86\$(ConfigurationName)
md $(SolutionDir)..\third_party\include\$(ProjectName)
md $(SolutionDir)..\third_party\libs\$(ProjectName)
copy $(ProjectDir)$(ProjectName).h $(SolutionDir)..\third_party\include\$(ProjectName)
copy $(TargetDir)$(TargetName).lib $(SolutionDir)..\bin\x86\$(ConfigurationName)

最后再次提醒:
WIN64项目,把所有配置内容的x86换成x64即可

完整实例源码,请下载:
VS2017解决方案的目录结构配置

你可能感兴趣的:(C/C++)