C++ - vs studio 的使用

本文主要是一些有关 vs 的使用经验

项目结构

  1. 使用vs创建空项目 test,注意不要勾选 将解决方案和项目放在统一目录中
    新建项目

  2. 空项目的目录结构如下所示:
    目录结构

    • 在test目录之下有一个 test.sln 文件,是整个项目的解决方案
    • 除去test.sln 文件,有一个默认名为 test 的解决方案(单独的一个文件夹,在vs中,一个项目可以有多个解决方案)
    • test 解决方案文件夹下有三个vs配置文件
    • 一般对于每一个单独的解决方案,我喜欢新建一个名为 src 的文件夹,将所有的源代码都放入其中,如下所示:
      目录结构1
  3. 尝试编译整个项目
    生成解决方案

    • 再次查看目录结构
      编译产物所在路径
      • 编译产物路径有两个,入上图所示的两个 Debug 目录
        1. 第一个 Debug 目录中存放可执行文件(.exe)
        2. 第二个 Debug 目录中存放中间产物(.obj等等)
    • 默认的上述路径很奇怪,不方便管理,我一般将他们放到 .sln 同级别目录下的 bin
    • 需要的设置如下所示:
      打开解决方案的属性
    • 按照如下进行设置
      设置编译输出路径
      • 输出目录中间目录 的设置如下:
        1
        2
        3
        4
        5
        # 输出目录
        $(SolutionDir)bin\$(Platform)\$(Configuration)\

        # 中间目录
        $(SolutionDir)bin\inetrmediates\$(Platform)\$(Configuration)\
        • $(SolutionDir) 就是指 .sln 文件所在的目录
        • $(Platform) 会根据编译时的平台(x86,x64)而改变
        • $(Configuration) 是一些配置(Debug/Release)
    • 设置完毕之后,删除原先的两个 Debug目录,重新编译一次,目录结果如下:
      编译产物所在路径
    • 按照上述操作重新编译之后,解决方案的编译产物全在 bin 目录之下

第三方依赖

  • 当我们需要使用第三方库的时候,可行的方案有:

    1. 源文件
    2. 静态链接(lib)
    3. 动态链接(dll/so)
  • 对于这些第三方依赖,我一般将其放到 .sln文件 所在目录的同级目录 dep 之下

  • 这个时候无论使用上述三种方法中的哪一种,都需要导入相应的文件(头文件)

导入源文件

  • 以导入源文件为例子来讲解,我在 dep 目录之下导入了一个 args 文件夹,我现在需要去使用该文件夹中的源文件
  • 首先来看目录结构:
    dep目录
  • 接下来进行设置,打开解决方案的设置,并且按照如下进行设置:
    添加包含目录
  • 这样就可以在我的 main.cpp 中使用该文件了
    main.png
    • 上述 main.cpp 中导入了 args.hxx,并且没有报错,可以正常使用