使用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的更多相关文章

  1. 【转】Windows 7下硬盘安装Ubuntu 14.04图文教程--不错

    原文网址:http://www.linuxidc.com/Linux/2014-04/100369p3.htm Ubuntu 官方已经发布了正式版的 Ubuntu 14.04 LTS,并宣称这是为云计 ...

  2. 分布式进阶(一)Windows 7下硬盘安装Ubuntu 14.04图文教程

    Windows 7下硬盘安装Ubuntu 14.04图文教程 本人下载的是ubuntu-14.04.2-desktop-amd64.iso,经本人亲自测试的,折腾了一天的时间. 1)首先还是分区,在计 ...

  3. 4.windows环境下如何安装memcached教程(转载+自己整理)

     Memcached 是一个开源免费高性能的分布式内存对象缓存系统,能够加快网站访问速度和减轻数据库压力,本文向大家介绍下windows环境下如何安装memcached.百度经验:jingyan. ...

  4. windows 2008下IIS7 安装ASP.NET 遇到500.19

    windows 2008下IIS7 安装ASP.NET 遇到如下错误: HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效. ...

  5. Spotlight on Mysql在Windows平台下的安装及使用简介

    Spotlight on Mysql在Windows平台下的安装及使用简介   by:授客 QQ:1033553122 1.   测试环境 Win7 64位 mysql-connector-odbc- ...

  6. 01.1 Windows环境下JDK安装与环境变量配置详细的图文教程

    01.1 Windows环境下JDK安装与环境变量配置详细的图文教程 本节内容:JDK安装与环境变量配置 以下是详细步骤 一.准备工具: 1.JDK JDK 可以到官网下载 http://www.or ...

  7. GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置

    GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置 前言 此篇博客主要为Pelican在Windows平台下的配置安装所写,在此过程中主要参考资料烟雨林博客.poem_of_ ...

  8. Windows系统下同时安装Python2和Python3

    Windows系统下同时安装Python2和Python3 说明 有时由于工作需求我们需要在Python2版本下面进行一些开发,有时又需要Python3以上的版本,那么我们怎么在一台电脑上同时安装多个 ...

  9. windows环境下如何安装memcached教程

    Memcached 是一个开源免费高性能的分布式内存对象缓存系统,能够加快网站访问速度和减轻数据库压力,本文向大家介绍下windows环境下如何安装memcached. 工具/原料   memcach ...

  10. Jmeter在windows系统下的安装

    一.工具描述 apache jmeter是100%的java桌面应用程序,它被设计用来加载被测试软件功能特性.度量被测试软件的性能.设计jmeter的初衷是测试web应用, 后来又扩充了其它的功能.j ...

随机推荐

  1. mysql8 安装与配置文件添加时区

    mysql默认时区选择了CST mysql>show variables like '%time_zone%'; 解决办法:(建议通过修改配置文件来解决) 通过命令在线修改: mysql> ...

  2. Nexus OSS 3 搭建并配置使用 Docker & Git LFS 仓库

    转载自:https://cloud.tencent.com/developer/article/1010590 1.Nexus OSS 3 介绍 我们知道 Nexus 是一个强大的 Maven 仓库管 ...

  3. WSL 2 上启用微软官方支持的 systemd

    以前折腾了很久的 genie 和 distrod 来实现 wsl2 上的 systemd.现在微软和Canonical联合声明发布了官方支持的systemd,之前的折腾貌似有点浪费时间了.如果微软不发 ...

  4. css过渡样式

    transition: 2s;//过渡两秒 用法: .div{ transition: 2s; }

  5. PHP全栈开发(四): HTML 学习(2. div 布局)

    无序列表,有序列表,自定义列表 无序列表是ul表示,每个元素用li表示 有序列表是ol表示,每个元素用li表示 <ul> <li>首页</li><li> ...

  6. 空 Maven项目转成 Web项目 & SpringMVC调用其他 Module中的方法可能会遇到的小问题

    SpringMVC调用其他 模块内的方法的 坑 下次别在阴沟里翻船啦.. 一共花费 4个小时,解决项目中的这个问题 OMG 1. 首先是 Maven新建工程 一般使用 Maven都是先创建 空工程 当 ...

  7. 鸟哥linux私房菜习题总结

    第零章 1.请找出世界上跑得最快的超级计算机的相关信息? 系统名称:天河二号. 所在位置:中国广州中山大学超算中心. 使用的cpu型号与规格:采用的是Intel的Ivy Bridge处理器与Xeon ...

  8. Vu3.x如何给v-for循环出来的输入框绑定v-mode的值,以及实现父子组件传值、双向绑定

    观前须知:本人演示使用的input是自己手敲的,如果使用的是element-ui等表单组建的input框请选择性参考,不保证我的方法对你们也完全有效. 父组件代码: 这里我的MiniInput是以组件 ...

  9. v-for和router-link的共同使用

    1. 错误例子 <div style="color: red" v-for="item in pressionList" :key="item. ...

  10. 关于针对XSS漏洞攻击防范的一些思考

    众所周知,XSS几乎在最常见.危害最大的WEB漏洞.针对这个危害,我们应该怎么防范呢. 下面简单说一下思路. 作者:轻轻的烟雾(z281099678) 一.XSS漏洞是什么 XSS漏洞网上的资料太多, ...