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 ...
随机推荐
- leetcode刷题记录之25(集合实现)
题目描述: 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表. k 是一个正整数,它的值小于或等于链表的长度.如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原 ...
- 动态编译库 Natasha 5.0 兼容版本发布
Natasha 5.0 版本已于 2022/10/10 日发布, 此次大版本更迭带来了兼容性支持, 目前 Natasha 可以兼容 standard2.0 及 coreapp3.1 以上版本. 下载使 ...
- 从SVN导出项目出现的乱码问题
解决的方法很简单,只需要将Eclipse的编码标准设置为UTF-8即可 1.Window->Preferences->General->Workspace 面板Text file ...
- Java学习之路:流程控制
2022-10-11 10:58:41 前言 本文开始流程控制方面的学习,主要包括用户交互和流程控制语句,适合新手学习. 1 用户交互Scanner 1.1 Scanner对象 Java提供了一个可以 ...
- logback在springBoot项目中的使用 springboot中使用日志进行持久化保存日志信息
文章目录 1.xml文件的编写 2.实现的效果 2.1 日志保存到磁盘 2.2 控制台输出的效果 放置的位置 1.xml文件的编写 logback-spring.xml <?xml versio ...
- 手把手教你从安装CentOS7.4镜像开始,搭建IoT视频监控系统
摘要:在CentOS7.4服务器版本的环境下安装nginx服务器.配置文件服务器.流媒体服务器. 本文分享自华为云社区<华为云ECS服务器安装CentOS7.4镜像,部署GINX服务器.搭建物联 ...
- Mockito使用方法(Kotlin)
一.为什么要使用Mockito 1.实际案例 1.1 遇到的问题 对于经常维护的项目,经常遇到一个实际问题:需求不停改变,导致架构经常需要修改某些概念的定义. 对于某些十分基础又十分常用的概念,常常牵 ...
- Ubuntu安装Docker及镜像加速器
一.安装Docker sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificate ...
- 在CentOS7下安装Oracle11教程
前言 安装oracle时,发现网上的文章总是缺少一些信息,导致安装不顺利,因为我对一些文章进行了整合,用以备忘. Oracle安装 首先下载linux版本的oracle安装文件,然后通过XFTP上传到 ...
- ES6 学习笔记(三)原始值与引用值
总结: 1.原始值,表示单一的数据,如10,"abc",true等. 1.1. ES的6种原始值: Undefined.Null.Boolean.Number.String.Sym ...