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 */
复制代码

 

posted @   今天学点啥?  阅读(2327)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示