目录

1 确认 VSCode 已安装以下扩展包

2 新建空文件夹、自动初始化 CMake 和 main.cpp

3 自动生成编译任务 Tasks.json

4 编译工程、生成静态或动态库

5  主程序调用库啦~~


0 视频分享

演示视频: https://www.bilibili.com/video/av97690436

1 确认 VSCode 已安装以下扩展包

2 新建空文件夹、自动初始化 CMake 和 main.cpp

VSCode 打开一个空文件夹、点击 查看-命令工作面板、或直接输入 Shift+Commond+P、屏幕顶部会弹出命令面板。

选择 『CMake:快速入门』-『GCC 5.5.0』、输入项目名称后回车、选择『创建库』

注意:这里选择『创建可执行文件』、则会自动创建一个可执行文件

稍等10s 左右、在工程目录下会自动生成文件夹build 、文件 CMakeLists.txt、VSCodeDLL.cpp(这个文件也是自动生成的哦)

3 自动生成编译任务 Tasks.json

输入 Shift+Commond+P、选择『任务:配置任务』-『使用模板创建 tasks.json』

更改 tasks.json 中 label:tesk 中的 command 内容如下:

"command": "cd ${workspaceFolder}/build && rm -rf CMakeFiles && cmake . && make",

4 编译工程、生成静态或动态库

输入 Shift+Commond+P、选择『任务:运行任务』-『test』、在终端会自动显示编译过程及结果。

默认编译的是静态库。如果想编译动态库、可以在 CMakeLists.txt 中 add_library 增加一个 SHARED 关键字即可。

  • 生成lib库

    • 例子:add_library(ALib SHARE alib.cpp)
    • 命令:add_library(libname [SHARED|STATIC|MODULE] [EXCLUDE_FROM_ALL] source1 source2 ... sourceN)
      libname:生成的库文件的名字
      ​[SHARED|STATIC|MODULE]:生成库文件的类型(动态库|静态库|模块)
      [EXCLUDE_FROM_ALL]:有这个参数表示该库不会被默认构建​
      source2 ... sourceN:生成库依赖的源文件,如果源文件比较多,可以使用​aux_sourcr_directory命令获取路径下所有源文件.

5  主程序调用库啦~~

创建一个 VSCodeDLL.cpp 对应的头文件 VSCodeDLL.h 给主程序用、重新编译。

主程序的生成可参考上一篇文章:【VSCode教程】 C++ Hello World、快速自动生成、你值得拥有!!

在主程序添加库头文件、并调用库函数 say_hello()

在主程序的 CMakeLists.txt 中添加 target_link_libraries ,第二个参数是库的完整地址。

target_link_libraries(VSCodeExe/Users/Leehom/Desktop/ProgramTests/VSCodeDLL/build/libVSCodeDLL.a)

编译、运行、 say_hellow吖~~

⭕️完成、散花

【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿相关推荐

  1. 一个实用技巧,告别手动画图,自动生成数据库 ER 图|原创

    来自:程序通事 忙,真忙 这两个星期真是巨忙,年前有个项目因为各种莫名原因,一直拖到这个月才开始真正测试.然后上周又接到新需求,马不停蹄进入开发. 一边开发着新需求,一边改着旧项目的 Bug.再加上这 ...

  2. 又一个Jupyter神器,操作Excel自动生成Python代码

    来源 | Python数据科学(ID: PyDataScience) 不得不说,Jupyter对于表的处理真的是越来越方便了,很多库可以直接实现可视化操作,无需写代码.但是这还不够,最近看到一个神器叫 ...

  3. 【Python】又一个Jupyter神器,操作Excel自动生成Python代码!

    大家好,我是东哥. 不得不说,Jupyter对于表的处理真的是越来越方便了,很多库可以直接实现可视化操作,无需写代码.但是这还不够,最近看到一个神器叫Mito,它真的是做到了无需写一行代码,而且手动的 ...

  4. 分布式文档系统-document id的手动指定与自动生成两种方式解析(来自学习笔记:龙果学院ES课程)

    1.手动指定document id (1)根据应用情况来说,是否满足手动指定document id的前提: 一般来说,是从某些其他的系统中,导入一些数据到es时,会采取这种方式,就是使用系统中已有数据 ...

  5. 15.分布式文档系统-document id的手动指定与自动生成两种方式解析

    课程大纲 1.手动指定document id 2.自动生成document id ----------------------------------------------------------- ...

  6. 又一个 Jupyter 神器,操作 Excel 自动生成 Python 代码

    大家好,Jupyter对于表的处理真的是越来越方便了,很多库可以直接实现可视化操作,无需写代码. 但是这还不够,最近看到一个神器叫Mito,它真的是做到了无需写一行代码,而且手动的操作可以自动转换为代 ...

  7. 一个很皮的实践 Python自动生成表情包

    作为一个数据分析师,应该信奉一句话----"一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态----表情包!!!! 表情包不仅仅是一种符号,更是一种文化:是促 ...

  8. CityEngine2022 中文版 下载、安装、自动生成城市教程

    目录 一.下载 二.安装教程 三.自动生成城市 一.下载 CityEngine官方授权账户注册及软件下载方法视频链接: CityEngine官方授权账户注册及软件下载方法 二.安装教程 CityEng ...

  9. vscode调试不出现C CPP,lauch json不自动填充cppgdb选项的替代方案

    文章目录 简介 注 安装拓展 操作 lauch.json解释 完结,撒花 简介 以前用vscode好好的,按F5直接调试,自动生成c/c++的.vscode\lauch.json文件,调试很方便,后来 ...

  10. 怎么从已有文件中挑选需要的文字重新生成新文件_word 中如何实现 一个正文位置输入 另一个正文地方自动生成一样的...

    展开全部 问:WORD里边怎样设置每页不同32313133353236313431303231363533e59b9ee7ad9431333264643764的页眉?如何使不同的章节显示的页眉不同? ...

最新文章

  1. 绩效真的重要吗?绩效管理系统有哪些?
  2. java inner class,C# Inner Class vs. java 的inner class比较-JSP教程,Java技巧及代码
  3. linux解压实例,linux 下面压缩,解压.rar文件以及rar,unrar实例
  4. 10.5做题——全排列(初赛复习)
  5. 全球及中国箱包市场需求前景与投资动态分析报告2022版
  6. 干!一张图整理了 Python 所有内置异常
  7. PAT1051 复数乘法 (15 分)
  8. 是什么包_包粽子教程,喜欢的收藏,以后想吃什么样的都可以自己包
  9. mysql 面试知识点笔记(七)RR如何避免幻读及非阻塞读、范式
  10. 关于Paralle.For和Paralle.ForEach
  11. 前端开发还可以这么玩?元数据实践分享
  12. 使用mkdir创建同级多目录
  13. python如何制作一个工程软件_使用python制作一个解压缩软件
  14. 美国签证过不了,ICLR 2020搬到埃塞俄比亚,同性恋学者:不去,保命要紧
  15. 为了躲开违规电动车,我一下子撞电线杆上了
  16. html获取元素的rgb值,使用javascript提取支持的HTML或X11颜色名称及其RGB值的列表
  17. GBase 8a数据库Hash分布表和随机分布表hash索引的区别
  18. ubuntu16.04下安装teamview12版本
  19. 【小白】线性表的链式存储结构的实现(C语言版)
  20. golang使用selenium自动化操作谷歌浏览器

热门文章

  1. 红米K40刷机导致基带丢失 基带未知 不读卡 没有串号 修复记录
  2. 大二Git-Branching学习
  3. c语言中 小数取整函数,取整函数,截去小数取整函数
  4. JavaMail gmail邮箱,gmx邮箱,disroot邮箱,protonmail邮箱,tutanota邮箱以及阿里云服务器邮箱配置
  5. python笔记3 闭包 装饰器 迭代器 生成器 内置函数 初识递归 列表推导式 字典推导式...
  6. 机器学习为什么也可以像人一样认识cang老师
  7. mysql gbk转utf8_MySQL字符集GBK转换到UTF8
  8. css加号图标_css样式画加号和减号(+和-)效果
  9. CANoe测试TC8的环境搭建以及带有VLAN标签的DUT网卡该如何配置CANoe测试环境
  10. 荣耀7点击Android版本,荣耀7全网通版Android5.0 电信版本刷机工具