使用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. 华南理工大学 Python第2章课后小测-2

    1.(单选)下列符号中,有()个是Python的关键字.(1)if    (2)lambda  (3)not   (4) For   (5)None(6)from  (7)True   (8)fina ...

  2. 聊聊单点登录(SSO)中的CAS认证

    SSO介绍 背景 随着企业的发展,一个大型系统里可能包含 n 多子系统, 用户在操作不同的系统时,需要多次登录,很麻烦,我们需要一种全新的登录方式来实现多系统应用群的登录,这就是单点登录. web 系 ...

  3. 依赖项安全检测新利器:Scorecard API

    Scorecard 是 OpenSSF 旗下的开源项目,用于评估开源软件风险,本文由该项目的主要贡献者 Naveen 撰写. 现代软件是建立在数百个甚至数千个第三方开源组件之上的,这些通常被称为依赖项 ...

  4. 《吐血整理》高级系列教程-吃透Fiddler抓包教程(23)-Fiddler如何优雅地在正式和测试环境之间来回切换-上篇

    1.简介 在开发或者测试的过程中,由于项目环境比较多,往往需要来来回回地反复切换,那么如何优雅地切换呢?宏哥今天介绍几种方法供小伙伴或者童鞋们进行参考. 2.实际工作场景 2.1问题场景 (1)已发布 ...

  5. 如何修改 Kubernetes 节点 IP 地址

    转载自:https://www.qikqiak.com/post/how-to-change-k8s-node-ip/ 昨天网络环境出了点问题,本地的虚拟机搭建的 Kubernetes 环境没有固定 ...

  6. 使用TLS安全的访问Minio服务

    官方文档地址:http://docs.minio.org.cn/docs/master/how-to-secure-access-to-minio-server-with-tls 查看这篇文章的操作步 ...

  7. 利用Java集合实现学生信息的”增删查“

    之前学了Java中的集合,打算写一个小程序来消化一下! 那么我们知道,集合相比数组的优点就是可以动态的增加元素,这对比数组来说,十分的便捷: 并且集合为我们封装好一些方法,可以更好的做一些数据操作! ...

  8. OnionArch - 采用DDD+CQRS+.Net 7.0实现的洋葱架构

    博主最近失业在家,找工作之余,看了一些关于洋葱(整洁)架构的资料和项目,有感而发,自己动手写了个洋葱架构解决方案,起名叫OnionArch.基于最新的.Net 7.0 RC1, 数据库采用Postgr ...

  9. Explain:你见过这样的Sql吗?

    上一篇我们讲到Mysql索引底层逻辑,为了了解后续sql知识,我们还是需要先学习一下相关"工具"得使用 一.Explain介绍 EXPLAIN是MySQl必不可少的一个分析工具,主 ...

  10. 使用FreeMarker配置动态模板

    FreeMarker动态模板 目录 FreeMarker动态模板 前言 准备工作 FreeMarker 代码构建 项目结构 创建 Configuration 实例 调用 模板文件 调用结果 Tips ...