Windows机器下VSCode安装及使用CmakeLists编译工程demo
使用VSCode, Mingw and Cmake写工程代码,从零开始写的那种,全过程分享......
你若发现该帖中有待商榷的地方,还请指正赐教,先行拜谢了!
1 软件下载
1.1 vscode下载
官网下载地址: https://code.visualstudio.com/
下载时,根据自己机器配置选择64位或32位(目前大多数机器windows机器都是64位),下载到本地之后如下图所示:

1.2 cmake下载
官网下载地址: https://cmake.org/download/

1.3 mingw下载
官网下载地址:https://osdn.net/projects/mingw/releases/
2 软件安装
2.1 VSCode安装
双击.exe文件开始安装,根据自己实际情况修改安装目录,其他全部默认点击“下一步”即可

安装完成之后打开vscode

2.2 添加cmake环境变量
(1)此电脑右击,点击属性

(2)点击高级系统设置

(3)点击高级 --> 环境变量

(4)选择Path,点击编辑

(5)将下载解压后的cmake bin目录路径粘贴进去,然后一路点击确定关闭弹窗即可

2.3 添加mingw环境变量
找到mingw的bin目录复制,添加方法参考 2.2 添加cmake环境变量
2.4 所有软件安装ok之后,重启一下电脑(不知道什么原因,没重启之前,配置cmake一直失败,重启后解决)
在cmd窗口中敲 gcc --version和cmake --version命令行,有版本号回显说明安装欧ok

3 建工程demo
3.1 创建工程
按照以下文件,建立一个空的工程demo,里面啥也不用写

------------------------------------------------------------------------------------------------------------------------------------------------

3.2 用VSCode打开

打开后如下图所示

完成c码编写......
3.3 CmakeLists.txt编码
多级目录的CmakeLists.txt编写,代码层级关系如下:

(1)顶层CmakLists.txt
1 #指定cmake最低版本号
2 cmake_minimum_required(VERSION 3.0)
3
4 #指定项目名称
5 project(CmakeProjDemo)
6
7 #指定可执行文件的输出路径位bin目录
8 set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin)
9
10 #指定子目录
11 add_subdirectory(src)
12 #-----------------------以上是顶层目录的必需品-----------------
13
14
15 #main.c中#include "Pub.h" & #include "Calculator.h",需要指定include目录
16 include_directories(${CMAKE_SOURCE_DIR}/include) #没有这一行肯定报错找不到Pub.h & Calculator.h
17
18 #指定源文件编译成CmakeProjDemo
19 add_executable(CmakeProjDemo main.c)
20
21 #编译可执行文件时,main.c需要指定他的动态链接目录
22 target_link_libraries(CmakeProjDemo src) #放在add_executable(CmakeProjDemo main.c)之前为啥不行?
(2)./src/CmakLists.txt
1 #该目录记为module_src
2 set(module_src src)
3
4 #当前目录下所有的源文件赋给source_src
5 aux_source_directory(. source_src)
6
7 #指定src目录下源文件 #include "Pub.h" & #include "Calculator.h"
8 include_directories(${CMAKE_SOURCE_DIR}/include) #没有这一行肯定报错找不到Pub.h & Calculator.h
9
10 #编译静态库
11 add_library(${module_src} ${source_src})
4 编译/运行
4.1 配置cmake
在VSCode中按F1 --> 窗口中输入cmake config --> 点击CMake Configure

4.2 编译
在VSCode中按F1 --> 窗口中输入cmake build --> 点击CMake Build

4.3 run
菜单栏 --> 终端 --> 新建终端 --> 在终端中cd 到bin目录 --> ./CmakeProjDemo.exe


5 源码附录
5.1 顶层目录:CmakeLists.txt main.c
1 #/* 顶层CmakeLists.txt */
2 #指定cmake最低版本号
3 cmake_minimum_required(VERSION 3.0)
4
5 #指定项目名称
6 project(CmakeProjDemo)
7
8 #指定可执行文件的输出路径位bin目录
9 set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin)
10
11 #指定子目录
12 add_subdirectory(src)
13 #-----------------------以上是顶层目录的必需品-----------------
14
15
16 #main.c中#include "Pub.h" & #include "Calculator.h",需要指定include目录
17 include_directories(${CMAKE_SOURCE_DIR}/include) #没有这一行肯定报错找不到Pub.h & Calculator.h
18
19 #指定源文件编译成CmakeProjDemo
20 add_executable(CmakeProjDemo main.c)
21
22 #编译可执行文件时,main.c需要指定他的动态链接目录
23 target_link_libraries(CmakeProjDemo src) #放在add_executable(CmakeProjDemo main.c)之前为啥不行?
1 /* main.c */
2 #include <stdio.h>
3
4 #include "Pub.h"
5 #include "Calculator.h"
6
7 int main()
8 {
9 printf("Hello CMAKE_PROJ_DEMO.\n");
10
11 int num1 = 100;
12 int num2 = 10;
13
14 int ret = Add(num1, num2);
15 printf("Add result(%d, %d) = %d\n", num1, num2, ret);
16 printf("Subtract result(%d, %d) = %d\n", num1, num2, Subtract(num1, num2));
17 printf("Multiply result(%d, %d) = %d\n", num1, num2, Multiply(num1, num2));
18 printf("Divede result(%d, %d) = %d\n", num1, num2, Divide(num1, num2));
19
20 (void)Swap(&num1, &num2);
21 printf("Swap result(%d, %d)\n", num1, num2);
22
23 return 0;
24 }
5.2 src目录:CmakeLists.txt Pub.c Calculator.c
1 #/* src目录CmakeLists.txt */
2 #该目录记为module_src
3 set(module_src src)
4
5 #当前目录下所有的源文件赋给source_src
6 aux_source_directory(. source_src)
7
8 #指定src目录下源文件 #include "Pub.h" & #include "Calculator.h"
9 include_directories(${CMAKE_SOURCE_DIR}/include) #没有这一行肯定报错找不到Pub.h & Calculator.h
10
11 #编译动态库
12 add_library(${module_src} ${source_src})
1 /* Pub.c */
2 #include "Pub.h"
3
4 int Cmp(const void *num1, const void *num2)
5 {
6 return *(int *)num1 - *(int *)num2;
7 }
8
9 int Swap(int *const num1, int *const num2)
10 {
11 int tmp = *num2;
12 *num2 = *num1;
13 *num1 = tmp;
14
15 return 0;
16 }
1 /* Calculator.c */
2 #include "Calculator.h"
3
4 #include <stdio.h>
5
6 int Add(const int num1, const int num2)
7 {
8 return num1 + num2;
9 }
10
11 int Subtract(const int num1, const int num2)
12 {
13 return num1 - num2;
14 }
15
16 int Multiply(const int num1, const int num2)
17 {
18 return num1 * num2;
19 }
20
21 int Divide(const int num1, const int num2)
22 {
23 return num1 / num2;
24 }
5.3 include目录:Pub.h Calculator.h
1 /* Pub.h */
2 #ifndef PUB_H
3 #define PUB_H
4
5 int Cmp(const void *num1, const void *num2);
6 int Swap(int *const num1, int *const num2);
7
8 #endif /* PUB_H */
1 /* Calculator.h */
2 #ifndef CALCULATOR_H
3 #define CALCULATOR_H
4
5 int Add(const int num1, const int num2);
6 int Subtract(const int num1, const int num2);
7 int Multiply(const int num1, const int num2);
8 int Divide(const int num1, const int num2);
9
10 #endif /* CALCULATOR_H */
Windows机器下VSCode安装及使用CmakeLists编译工程demo的更多相关文章
- 【转】Windows 7下硬盘安装Ubuntu 14.04图文教程--不错
原文网址:http://www.linuxidc.com/Linux/2014-04/100369p3.htm Ubuntu 官方已经发布了正式版的 Ubuntu 14.04 LTS,并宣称这是为云计 ...
- 分布式进阶(一)Windows 7下硬盘安装Ubuntu 14.04图文教程
Windows 7下硬盘安装Ubuntu 14.04图文教程 本人下载的是ubuntu-14.04.2-desktop-amd64.iso,经本人亲自测试的,折腾了一天的时间. 1)首先还是分区,在计 ...
- 4.windows环境下如何安装memcached教程(转载+自己整理)
Memcached 是一个开源免费高性能的分布式内存对象缓存系统,能够加快网站访问速度和减轻数据库压力,本文向大家介绍下windows环境下如何安装memcached.百度经验:jingyan. ...
- windows 2008下IIS7 安装ASP.NET 遇到500.19
windows 2008下IIS7 安装ASP.NET 遇到如下错误: HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效. ...
- Spotlight on Mysql在Windows平台下的安装及使用简介
Spotlight on Mysql在Windows平台下的安装及使用简介 by:授客 QQ:1033553122 1. 测试环境 Win7 64位 mysql-connector-odbc- ...
- 01.1 Windows环境下JDK安装与环境变量配置详细的图文教程
01.1 Windows环境下JDK安装与环境变量配置详细的图文教程 本节内容:JDK安装与环境变量配置 以下是详细步骤 一.准备工具: 1.JDK JDK 可以到官网下载 http://www.or ...
- GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置
GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置 前言 此篇博客主要为Pelican在Windows平台下的配置安装所写,在此过程中主要参考资料烟雨林博客.poem_of_ ...
- Windows系统下同时安装Python2和Python3
Windows系统下同时安装Python2和Python3 说明 有时由于工作需求我们需要在Python2版本下面进行一些开发,有时又需要Python3以上的版本,那么我们怎么在一台电脑上同时安装多个 ...
- windows环境下如何安装memcached教程
Memcached 是一个开源免费高性能的分布式内存对象缓存系统,能够加快网站访问速度和减轻数据库压力,本文向大家介绍下windows环境下如何安装memcached. 工具/原料 memcach ...
- Jmeter在windows系统下的安装
一.工具描述 apache jmeter是100%的java桌面应用程序,它被设计用来加载被测试软件功能特性.度量被测试软件的性能.设计jmeter的初衷是测试web应用, 后来又扩充了其它的功能.j ...
随机推荐
- Hadoop阶段学习总结
第一部分:HDFS相关问题 一.描述一下HDFS的数据写入流程 首先由客户端想NameNode服务发起写数据请求,NameNode接收到请求后会进行基本验证,验证内容包括对请求上传的路径进行合法验 ...
- SQL注入篇——sqli-labs各关卡方法介绍|1-65
主要是记下来了每关通过可以采用的注入方式,可能部分关卡的通关方式写的不全面,欢迎指出,具体的获取数据库信息请手动操作一下. 环境初始界面如下: sql注入流程语句: order by 3--+ #判断 ...
- CentOS系统磁盘目录空间调整
前几天装了几台linux服务器,安装操作系统的时候,选择了默认磁盘分区,结果导致后面主目录分区空间不够用了,需要把其他分区的空间划分给主分区一点. 下面以CentOS6.5演示: 一.查看当前系统的磁 ...
- HM VNISEdit2.0.3修正版
HM VNISEdit,曾经是NSIS最强最佳开源免费编辑器/IDE,但2003年至今原作者已经接近20年未再更新,随着NSIS3.X版本的普及,NIS Edit不可避免的出现了大大小小的各种BUG, ...
- 从0搭建vue3组件库:Shake抖动组件
先看下效果 其实就是个抖动效果组件,实现起来也非常简单.之所以做这样一个组件是为了后面写Form表单的时候会用到它做一个规则校验,比如下面一个简单的登录页面,当点击登录会提示用户哪个信息没输入,当然这 ...
- 后端框架的学习----mybatis框架(8、lombok)
8.lombok #测试环境搭建 1.导入lombok 2.新建实体类Teacher,Student 3.建立mapper接口 4.建立mapper.xml文件 5.在核心配置文件中绑定注册mappe ...
- 在vue中_this和this的区别
_this只是一个变量名,this代表父函数,如果在子函数还用this,this的指 向就变成子函数了,_this就是用来存储指向的 普通函数中的this表示调用此函数时的对象,箭头函数里面的this ...
- 各大厂 C/C++ 编程规范详解
来吧!各大厂知名规范体系~ 各有特点各有侧重~ Google C++ Style Guide Google C++ Style Guide,[中文版],简称 GSG,谷歌的 C++ 编程规范,在国内有 ...
- 靶机: easy_cloudantivirus
靶机: easy_cloudantivirus 准备 下载靶机(Target):https://www.vulnhub.com/entry/boredhackerblog-cloud-av,453/ ...
- PX01关于手机屏SPI触摸调试学习笔记
上位机工具:http://www.xk-image.com/download/blog/0002_TP调试/LcdTools20210605.rar 调试案例:http://www.xk-image. ...