【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 已安装以下扩展包 

 【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿_第1张图片

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

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

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

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

【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿_第2张图片【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿_第3张图片【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿_第4张图片【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿_第5张图片

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

【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿_第6张图片

【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿_第7张图片

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

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

【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿_第8张图片

【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿_第9张图片

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

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

【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿_第10张图片

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

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

【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿_第11张图片【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿_第12张图片【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿_第13张图片

 默认编译的是静态库。如果想编译动态库、可以在 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命令获取路径下所有源文件.

【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿_第14张图片

5  主程序调用库啦~~

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

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

【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿_第15张图片

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

【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿_第16张图片

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

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

【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿_第17张图片

编译、运行、 say_hellow吖~~

【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿_第18张图片

⭕️完成、散花

你可能感兴趣的:(VSCode,C++,visual,studio,code,c++,macos)