Windows怎么配置VSCode + CMake +忍者+ Boost.Test的c++开发环境

  介绍

这篇文章主要讲解了Windows怎么配置VSCode + CMake +忍者+提振。测试的c++开发环境,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

平时习惯了在Linux环境写c++,有时候切换到Windows想继续在同一个项目上工作,重新配置环境总是很麻烦。虽然Windows下用Visual Studio写c++只需要双击个图标,但我还是想折腾一下VS代码的环境配置。原因主要有两点:一是个人习惯上各种语言都在VS代码里面写,利用Git同步代码可以很方便地在不同平台开发同一个项目;二是有些情形下无法使用图形化界面,比如为Git配置CI(持续性集成)时显然不能用Visual Studio这个图形化的IDE来执行Windows环境的测试。

本文涉及的环境和工具版本:

    <李>窗口10 <李> VS代码1.45.0李 <李> C/c++ (ms-vscode.cpptools)插件0.28.0.insider3李 <李> CMake (twxs.cmake)插件0.0.17李 <李> CMake工具(ms-vscode.cmake-tools)插件1.3.1李 <李> Visual Studio IntelliCode (visualstudioexptteam.vscodeintellicode)插件1.2.7 <李>编写Visual Studio社区2019(需要调用VS提供的MSVC编译工具,以及相应的头文件和库文件) <李> CMake 3.17.2李 <李>忍者1.10.0李 <李>提高1.73.0

1创建c++项目

2安装Visual Studio

3安装CMake和忍者

4下载和编译提高

4.1命令提示符的使用

4.2编译提高

5命令行编译和测试

6配置VS代码

6.1 settings.json

6.2 c_cpp_properties.json

6.3 tasks.json

6.4 launch.json

6.5 CMakeLists.txt

6.6编译,测试和调试

VSCode及插件的安装过程本文暂不介绍,这里直接给出项目的文件结构和代码。

项目结构如下。<代码>。vscode 文件夹里面的3个json文件用来配置VS代码,第二个文件夹里面包含对LeetCode某一个问题的解答(<代码>解决方案。hpp 和<代码>解决方案。cpp> solution_test。cpp> CMakeLists。txt 文件用来配置CMake,给出项目的编译规则。

癢indows怎么配置VSCode

这里先给出c++部分的代码,其他文件的内容会在后面给出。

解决方案。hpp

的ifndef SOLUTION_HEADER
  #定义SOLUTION_HEADER
  # include & lt; iostream>
  # include & lt; vector>
  # include & lt; unordered_set>
  使用名称空间性病;
  {类解决方案
  公众:
  vector十字路口(vector和nums1 vector和;nums2);
  };
  # endif
  solution.cpp
  # include“solution.hpp"
  静态汽车x=[] () {//关闭同步
  ios std:::: sync_with_stdio(假);//解开/流
  cin.tie(空);
  返回0;
  }();
  vector解决方案::十字路口(vector和nums1 vector和;nums2) {
  如果(nums1.size()在nums2.size ())
  交换(nums1 nums2);
  unordered_set(nums1.begin (), nums1.end ()), C;
  (auto&我:nums2) {
  如果(A.find (i) !=A.end ())
  C.insert(我);
  }
  返回vector (C.begin (), C.end ());
  }

解决方案。cpp

 # include“solution.hpp"
  
  静态汽车x=[] () {//关闭同步
  ios std:::: sync_with_stdio(假);//解开/流
  cin.tie(空);
  返回0;
  }();
  
  
  vector解决方案::十字路口(vector和nums1 vector和;nums2) {
  如果(nums1.size()在nums2.size ())
  交换(nums1 nums2);
  unordered_set(nums1.begin (), nums1.end ()), C;
  (auto&我:nums2) {
  如果(A.find (i) !=A.end ())
  C.insert(我);
  }
  返回vector (C.begin (), C.end ());
  }

solution_test。cpp

 # define BOOST_TEST_MODULE SolutionTest
  
  # include“solution.hpp"
  # include & lt;提高/测试/unit_test.hpp>
  
  BOOST_AUTO_TEST_SUITE (SolutionSuite)
  
  BOOST_AUTO_TEST_CASE (PlainTest1)
  {
  vectornums1 {1、2、2、1};
  vectornums2 {2,};
  vector结果=解决方案().intersection (nums1 nums2);
  
  vector预期的{2};
  
  sort (results.begin (), results.end ());
  sort (expected.begin (), expected.end ());
  results.end BOOST_CHECK_EQUAL_COLLECTIONS (results.begin () (), expected.begin (), expected.end ());
  }
  
  BOOST_AUTO_TEST_CASE (PlainTest2)
  {
  vectornums1{4, 9日,5};
  vectornums2 {9, 4、9、8、4};
  vector

Windows怎么配置VSCode + CMake +忍者+ Boost.Test的c++开发环境