【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿
目录
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^)丿相关推荐
- 一个实用技巧,告别手动画图,自动生成数据库 ER 图|原创
来自:程序通事 忙,真忙 这两个星期真是巨忙,年前有个项目因为各种莫名原因,一直拖到这个月才开始真正测试.然后上周又接到新需求,马不停蹄进入开发. 一边开发着新需求,一边改着旧项目的 Bug.再加上这 ...
- 又一个Jupyter神器,操作Excel自动生成Python代码
来源 | Python数据科学(ID: PyDataScience) 不得不说,Jupyter对于表的处理真的是越来越方便了,很多库可以直接实现可视化操作,无需写代码.但是这还不够,最近看到一个神器叫 ...
- 【Python】又一个Jupyter神器,操作Excel自动生成Python代码!
大家好,我是东哥. 不得不说,Jupyter对于表的处理真的是越来越方便了,很多库可以直接实现可视化操作,无需写代码.但是这还不够,最近看到一个神器叫Mito,它真的是做到了无需写一行代码,而且手动的 ...
- 分布式文档系统-document id的手动指定与自动生成两种方式解析(来自学习笔记:龙果学院ES课程)
1.手动指定document id (1)根据应用情况来说,是否满足手动指定document id的前提: 一般来说,是从某些其他的系统中,导入一些数据到es时,会采取这种方式,就是使用系统中已有数据 ...
- 15.分布式文档系统-document id的手动指定与自动生成两种方式解析
课程大纲 1.手动指定document id 2.自动生成document id ----------------------------------------------------------- ...
- 又一个 Jupyter 神器,操作 Excel 自动生成 Python 代码
大家好,Jupyter对于表的处理真的是越来越方便了,很多库可以直接实现可视化操作,无需写代码. 但是这还不够,最近看到一个神器叫Mito,它真的是做到了无需写一行代码,而且手动的操作可以自动转换为代 ...
- 一个很皮的实践 Python自动生成表情包
作为一个数据分析师,应该信奉一句话----"一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态----表情包!!!! 表情包不仅仅是一种符号,更是一种文化:是促 ...
- CityEngine2022 中文版 下载、安装、自动生成城市教程
目录 一.下载 二.安装教程 三.自动生成城市 一.下载 CityEngine官方授权账户注册及软件下载方法视频链接: CityEngine官方授权账户注册及软件下载方法 二.安装教程 CityEng ...
- vscode调试不出现C CPP,lauch json不自动填充cppgdb选项的替代方案
文章目录 简介 注 安装拓展 操作 lauch.json解释 完结,撒花 简介 以前用vscode好好的,按F5直接调试,自动生成c/c++的.vscode\lauch.json文件,调试很方便,后来 ...
- 怎么从已有文件中挑选需要的文字重新生成新文件_word 中如何实现 一个正文位置输入 另一个正文地方自动生成一样的...
展开全部 问:WORD里边怎样设置每页不同32313133353236313431303231363533e59b9ee7ad9431333264643764的页眉?如何使不同的章节显示的页眉不同? ...
最新文章
- 绩效真的重要吗?绩效管理系统有哪些?
- java inner class,C# Inner Class vs. java 的inner class比较-JSP教程,Java技巧及代码
- linux解压实例,linux 下面压缩,解压.rar文件以及rar,unrar实例
- 10.5做题——全排列(初赛复习)
- 全球及中国箱包市场需求前景与投资动态分析报告2022版
- 干!一张图整理了 Python 所有内置异常
- PAT1051 复数乘法 (15 分)
- 是什么包_包粽子教程,喜欢的收藏,以后想吃什么样的都可以自己包
- mysql 面试知识点笔记(七)RR如何避免幻读及非阻塞读、范式
- 关于Paralle.For和Paralle.ForEach
- 前端开发还可以这么玩?元数据实践分享
- 使用mkdir创建同级多目录
- python如何制作一个工程软件_使用python制作一个解压缩软件
- 美国签证过不了,ICLR 2020搬到埃塞俄比亚,同性恋学者:不去,保命要紧
- 为了躲开违规电动车,我一下子撞电线杆上了
- html获取元素的rgb值,使用javascript提取支持的HTML或X11颜色名称及其RGB值的列表
- GBase 8a数据库Hash分布表和随机分布表hash索引的区别
- ubuntu16.04下安装teamview12版本
- 【小白】线性表的链式存储结构的实现(C语言版)
- golang使用selenium自动化操作谷歌浏览器
热门文章
- 红米K40刷机导致基带丢失 基带未知 不读卡 没有串号 修复记录
- 大二Git-Branching学习
- c语言中 小数取整函数,取整函数,截去小数取整函数
- JavaMail gmail邮箱,gmx邮箱,disroot邮箱,protonmail邮箱,tutanota邮箱以及阿里云服务器邮箱配置
- python笔记3 闭包 装饰器 迭代器 生成器 内置函数 初识递归 列表推导式 字典推导式...
- 机器学习为什么也可以像人一样认识cang老师
- mysql gbk转utf8_MySQL字符集GBK转换到UTF8
- css加号图标_css样式画加号和减号(+和-)效果
- CANoe测试TC8的环境搭建以及带有VLAN标签的DUT网卡该如何配置CANoe测试环境
- 荣耀7点击Android版本,荣耀7全网通版Android5.0 电信版本刷机工具