Win10下VScode+MSVC+CMake搭建C++开发环境

2023-05-16

最近工作需要大规模C++开发,以往都是使用Visual Studio(以下简称VS),虽然VS是一款很强大的IDE,但也同样带来过于庞大,运行卡顿等问题,办公室的电脑有些吃不消。而Visual Studio Code(以下简称VSC)作为一款编辑器,凭借其丰富的插件,开源、轻量级、跨平台等优势成为了比较完美的替代品。虽然如此,想使用VSC搭建开发环境要比直接使用VS复杂的多,这篇文章主要做一个整理总结。

目录

安装包

配置工程环境

1、新建工程文件夹

2、新建主函数文件main.cpp

3、新建CMakeLists.txt

4、使用CMakeLists.txt配置编译环境

5、用task快速执行exe程序

6、Debug

参考链接


安装包

VSCodeUserSetup-x64-1.53.0.exe

visualcppbuildtools_full.exe

安装都比较简单,就略过不表了,记得安装必要的插件,C/C++、C/C++ Extension Pack、C++ Intellisense、Chinese (Simplified) Language Pack for Visual Studio Code、CMake、CMake Tools等;

这边讲一下Visual C++ build tools离线版下载方法。

打开命令行cmd:切换工作路径 cd 到下载得到的visualcppbuildtools_full.exe文件的路径。

然后在命令行输入:

visualcppbuildtools_full.exe /Layout VCbuildtools

/Layout 后面的VCbuildtools 自定义路径为下载的安装包保存的路径。在线安装程序会将安装包下载到指定文件夹。

最后下载得到的文件(1.73G):

此时将此文件夹拷贝到需要安装的机器上运行VisualCppBuildTools_Full.ext则可以离线安装VC++ build tools。

配置工程环境

配置工程环境是每个工程开始前都需要完成的工作,这里只说一个基本框架的搭建。

1、新建工程文件夹

打开VSC,新建工程文件夹Try,以下文件及文件夹均在Try文件夹下。

新建src文件夹存放其他源文件,新建include文件夹存放未添加到系统环境变量中的头文件。

2、新建主函数文件main.cpp

#include <iostream>

int main()
{
	std::cout << "Hello World~" << std::endl;
	system("pause");
	return 0;
}

3、新建CMakeLists.txt

cmake_minimum_required(VERSION 3.0)
project(try)
set(SRC_LIST main.cpp)
add_executable(hello ${SRC_LIST})

这是我们得到的工程文件夹如下 

4、使用CMakeLists.txt配置编译环境

在VSC中按ctrl+shift+p进入命令行,输入CMake:Configure,选择vs编译器,会生成build文件夹。

[main] 正在配置文件夹: Try 
[cms-client] 正在使用“Visual Studio 15 2017”CMake 生成器进行配置 平台:“x64”,工具集: "host=x64"
[cms-client] 正在使用“Visual Studio 15 2017”CMake 生成器进行配置 平台:“x64”,工具集: "host=x64"
[cmake] Selecting Windows SDK version 10.0.16299.0 to target Windows 10.0.18363.
[cmake] The C compiler identification is MSVC 19.12.25834.0
[cmake] The CXX compiler identification is MSVC 19.12.25834.0
[cmake] Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.12.25827/bin/Hostx64/x64/cl.exe
[cmake] Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.12.25827/bin/Hostx64/x64/cl.exe -- works
[cmake] Detecting C compiler ABI info
[cmake] Detecting C compiler ABI info - done
[cmake] Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.12.25827/bin/Hostx64/x64/cl.exe
[cmake] Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.12.25827/bin/Hostx64/x64/cl.exe -- works
[cmake] Detecting CXX compiler ABI info
[cmake] Detecting CXX compiler ABI info - done
[cmake] Detecting CXX compile features
[cmake] Detecting CXX compile features - done
[cmake] Configuring done
[cmake] Generating done
[cmake] CMake Warning:
[cmake]   Manually-specified variables were not used by the project:
[cmake] 
[cmake]     CMAKE_EXPORT_COMPILE_COMMANDS
[cmake] 
[cmake] 
[main] 正在配置文件夹: Try 
[cmake] Selecting Windows SDK version 10.0.16299.0 to target Windows 10.0.18363.
[cmake] Configuring done
[cmake] Generating done

点击下方的build按钮编译程序。

[main] 正在生成文件夹: Try 
[build] 正在启动生成
[proc] 执行命令: "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" --build c:/Users/63099/Desktop/Try/build --config Debug --target ALL_BUILD -- /maxcpucount:10
[build] 用于 .NET Framework 的 Microsoft (R) 生成引擎版本 15.5.180.51428
[build] 版权所有(C) Microsoft Corporation。保留所有权利。
[build] 
[build] 生成启动时间为 2021/2/10 14:22:39。
[build]      1>节点 1 上的项目“C:\Users\63099\Desktop\Try\build\ALL_BUILD.vcxproj”(默认目标)。
[build]      1>项目“C:\Users\63099\Desktop\Try\build\ALL_BUILD.vcxproj”(1)正在节点 1 上生成“C:\Users\63099\Desktop\Try\build\ZERO_CHECK.vcxproj”(2) (默认目标)。
[build]      2>PrepareForBuild:
[build]          正在创建目录“x64\Debug\ZERO_CHECK\”。
[build]          正在创建目录“x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\”。
[build]        InitializeBuildStatus:
[build]          正在创建“x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild”,因为已指定“AlwaysCreate”。
[build]        CustomBuild:
[build]          Checking Build System
[build]          CMake does not need to re-run because C:/Users/63099/Desktop/Try/build/CMakeFiles/generate.stamp is up-to-date.
[build]        FinalizeBuildStatus:
[build]          正在删除文件“x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild”。
[build]          正在对“x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate”执行 Touch 任务。
[build]      2>已完成生成项目“C:\Users\63099\Desktop\Try\build\ZERO_CHECK.vcxproj”(默认目标)的操作。
[build]      1>项目“C:\Users\63099\Desktop\Try\build\ALL_BUILD.vcxproj”(1)正在节点 2 上生成“C:\Users\63099\Desktop\Try\build\hello.vcxproj”(3) (默认目标)。
[build]      3>PrepareForBuild:
[build]          正在创建目录“hello.dir\Debug\”。
[build]          正在创建目录“C:\Users\63099\Desktop\Try\build\Debug\”。
[build]          正在创建目录“hello.dir\Debug\hello.tlog\”。
[build]        InitializeBuildStatus:
[build]          正在创建“hello.dir\Debug\hello.tlog\unsuccessfulbuild”,因为已指定“AlwaysCreate”。
[build]        CustomBuild:
[build]          Building Custom Rule C:/Users/63099/Desktop/Try/CMakeLists.txt
[build]          CMake does not need to re-run because C:/Users/63099/Desktop/Try/build/CMakeFiles/generate.stamp is up-to-date.
[build]        ClCompile:
[build]          C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.12.25827\bin\HostX64\x64\CL.exe /c /Zi /nologo /W3 /WX- /diagnostics:classic /Od /Ob0 /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /Fo"hello.dir\Debug\\" /Fd"hello.dir\Debug\vc141.pdb" /Gd /TP /errorReport:queue C:\Users\63099\Desktop\Try\main.cpp
[build]          main.cpp
[build]        Link:
[build]          C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.12.25827\bin\HostX64\x64\link.exe /ERRORREPORT:QUEUE /OUT:"C:\Users\63099\Desktop\Try\build\Debug\hello.exe" /INCREMENTAL /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:/Users/63099/Desktop/Try/build/Debug/hello.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:/Users/63099/Desktop/Try/build/Debug/hello.lib" /MACHINE:X64  /machine:x64 hello.dir\Debug\main.obj
[build]          hello.vcxproj -> C:\Users\63099\Desktop\Try\build\Debug\hello.exe
[build]        FinalizeBuildStatus:
[build]          正在删除文件“hello.dir\Debug\hello.tlog\unsuccessfulbuild”。
[build]          正在对“hello.dir\Debug\hello.tlog\hello.lastbuildstate”执行 Touch 任务。
[build]      3>已完成生成项目“C:\Users\63099\Desktop\Try\build\hello.vcxproj”(默认目标)的操作。
[build]      1>PrepareForBuild:
[build]          正在创建目录“x64\Debug\ALL_BUILD\”。
[build]          正在创建目录“x64\Debug\ALL_BUILD\ALL_BUILD.tlog\”。
[build]        InitializeBuildStatus:
[build]          正在创建“x64\Debug\ALL_BUILD\ALL_BUILD.tlog\unsuccessfulbuild”,因为已指定“AlwaysCreate”。
[build]        CustomBuild:
[build]          Building Custom Rule C:/Users/63099/Desktop/Try/CMakeLists.txt
[build]          CMake does not need to re-run because C:/Users/63099/Desktop/Try/build/CMakeFiles/generate.stamp is up-to-date.
[build]        FinalizeBuildStatus:
[build]          正在删除文件“x64\Debug\ALL_BUILD\ALL_BUILD.tlog\unsuccessfulbuild”。
[build]          正在对“x64\Debug\ALL_BUILD\ALL_BUILD.tlog\ALL_BUILD.lastbuildstate”执行 Touch 任务。
[build]      1>已完成生成项目“C:\Users\63099\Desktop\Try\build\ALL_BUILD.vcxproj”(默认目标)的操作。
[build] 
[build] 已成功生成。
[build]     0 个警告
[build]     0 个错误
[build] 
[build] 已用时间 00:00:07.88
[build] 生成已完成,退出代码为 0

这样编译成功了,可执行文件hello.exe会出现在build/Debug文件夹中。

点击下方的运行按钮,这样我们就可以运行生成的hello.exe了。

C:\Users\63099\Desktop\Try\build\Debug>"C:\Users\63099\Desktop\Try\build\Debug\hello.exe"
Hello World~
请按任意键继续. . . 

但是根据软件版本或系统不同,有些时候我们每次运行都需要通过指令进入build/Debug文件夹,为了可以简化操作,我们可以使用task。

5、用task快速执行exe程序

同样使用ctrl+shift+p进入命令行,输入Tasks:Configure Task,选择使用模板创建->other,会生成.vscode文件夹及task.json文件:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "echo",
            "type": "shell",
            "command": "echo Hello"
        }
    ]
}

我们将“command”指令修改成“./build/Debug/hello”,即在命令行中执行exe需要输入的指令。

然后再使用ctrl+shift+p进入命令行,输入Tasks:Run Task,选择echo,执行后就会出现:

> Executing task: ./build/Debug/hello <

Hello World~
请按任意键继续. . . 

6、Debug

按F5或者Debug按钮进入Debug模式后,选择GDB会自动生成launch.json文件:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "输入程序名称,例如 ${workspaceFolder}/a.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "console": "externalTerminal",
            "MIMode": "gdb",
            "miDebuggerPath": "/path/to/gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

我们将"program"指令修改成:"${command:cmake.launchTargetPath}",然后点击下方的build按钮生成可执行程序,再点下面的Debug按钮就可以进行Debug。

参考链接

利用VScode和cmake编译构建C++工程代码 - Oldpan的个人博客

如何下载visual c++ build tools的离线完整版_伙伴lqs的博客-CSDN博客_visualcppbuildtools_full.exe

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Win10下VScode+MSVC+CMake搭建C++开发环境 的相关文章

  • rocksdb的设置选项和基本调整

    除了在 RocksDB 上使用基本操作编写代码外 xff0c 您可能还对如何调整 RocksDB 以实现所需的性能感兴趣 在本页中 xff0c 我们将介绍如何进行初始设置 xff0c 该设置应该足以满足许多用例的需求 RocksDB 有许多
  • rocksdb的wal配置

    wal配置 数据库 xff1a xff1a wal dir DBOptions wal dir设置 RocksDB 存储预写日志文件的目录 xff0c 该目录允许将 WAL 存储在与实际数据不同的目录中 数据库 xff1a xff1a WA
  • Winpcap常用函数解析

    1 int pcap findalldevs pcap if t char 说明 xff1a 用来获得网卡的列表 参数 xff1a 指向pcap if t 类型的列表的指针的指针 char型指针 当打开列表错误时返回错误信息 返回值 为in
  • 终端、虚拟终端、shell、控制台、tty的区别

    终端与控制台的区别 xff1f 最近开始接触Linux xff0c 终端 虚拟终端 shell 控制台 tty等概念让我很混乱 xff0c 有必要认识清楚 今天看到有人问终端和控制台的区别 xff0c 而且这个问题比较有普遍性 xff0c
  • Windows下C++使用thread时无法识别thread和mutex相关库的解决

    问题描述 今天我在Windows下打算尝试C 43 43 多线程编程 xff0c 在CLion上进行编码 CLion的C 43 43 编译器是正常的 xff0c 以前也跑过好几个项目 xff0c 使用其他STL库函数也正常 xff0c 唯独
  • 虚拟机下Linux系统磁盘扩容

    在VM虚拟机中 xff0c 我们经常会选择默认磁盘大小20G xff0c 用着用着才发现20G不够用 xff0c 服务启动不了 xff0c 就很尴尬 xff0c 让我们今天一起来学习下 xff0c 如何在虚拟机给磁盘扩容 一 xff1a 关
  • MATLAB学习笔记——二维和三维绘图

    MATLAB学习笔记 二维和三维绘图 近期练习matlab的二维和三维绘图 xff0c 整理一下 xff0c 以防忘记 文章目录 MATLAB学习笔记 二维和三维绘图一 二维绘图1 plot命令2 fplot 命令3 ezplot 绘图命令
  • pve 相关

    一 pve 创建的虚拟机的配置文件位置 在宿主机的 etc pve qemu server xff0c 这里有创建虚拟机的相关硬件信息 root 64 pve span class token comment cd etc pve qemu
  • mysql在linux下的my.cnf文件在哪里!

    用rpm包安装的MySQL是不会安装 etc my cnf文件的 xff0c 至于为什么没有这个文件而MySQL却也能正常启动和作用 xff0c 在点有两个说法 xff0c 第一种说法 xff0c my cnf只是MySQL启动时的一个参数
  • shell后台并发执行的最佳实践

    一 shell如何在后台执行 1 nohup命令 通常我们都是远程登录linux终端 xff0c 而当我们退出终端时在之前终端运行的程序都会终止 xff0c 有时候先想要退出终端也要程序继续执行这时nohup就登场了 nohup命令 可以将
  • 任意输入10个数,找出最大数和最小数。

    任意输入10个数 找出最大数和最小数 span class token macro property span class token directive keyword include span span class token stri
  • 如何在 Chromebook 上启用开发者模式

    写在前面的话 xff1a 版权声明 xff1a 本文为博主原创文章 xff0c 转载请注明出处 xff01 博主是一个小菜鸟 xff0c 并且非常玻璃心 xff01 如果文中有什么问题 xff0c 请友好地指出来 xff0c 博主查证后会进
  • 【C语言】实现 atoi 函数

    写在前面的话 xff1a 版权声明 xff1a 本文为博主原创文章 xff0c 转载请注明出处 xff01 博主是一个小菜鸟 xff0c 并且非常玻璃心 xff01 如果文中有什么问题 xff0c 请友好地指出来 xff0c 博主查证后会进
  • 【C语言】字符串合集

    写在前面的话 xff1a 版权声明 xff1a 本文为博主原创文章 xff0c 转载请注明出处 xff01 博主是一个小菜鸟 xff0c 并且非常玻璃心 xff01 如果文中有什么问题 xff0c 请友好地指出来 xff0c 博主查证后会进
  • 线程上下文切换和进程上下文切换的区别

    进程切换分两步 1 切换页目录以使用新的地址空间 2 切换内核栈和硬件上下文 对于linux来说 xff0c 线程和进程的最大区别就在于地址空间 对于线程切换 xff0c 第1步是不需要做的 xff0c 第2是进程和线程切换都要做的 所以明
  • 【Ubuntu】解决 Could not get lock /var/lib/dpkg/lock-frontend

    写在前面的话 xff1a 版权声明 xff1a 本文为博主原创文章 xff0c 转载请注明出处 xff01 博主是一个小菜鸟 xff0c 并且非常玻璃心 xff01 如果文中有什么问题 xff0c 请友好地指出来 xff0c 博主查证后会进
  • 【Ubuntu】解决 error: dpkg frontend is locked by another process

    写在前面的话 xff1a 版权声明 xff1a 本文为博主原创文章 xff0c 转载请注明出处 xff01 博主是一个小菜鸟 xff0c 并且非常玻璃心 xff01 如果文中有什么问题 xff0c 请友好地指出来 xff0c 博主查证后会进
  • 【OpenCV】关于Vec3b类型的含义与使用

    写在前面的话 xff1a 版权声明 xff1a 本文为博主原创文章 xff0c 转载请注明出处 xff01 博主是一个小菜鸟 xff0c 并且非常玻璃心 xff01 如果文中有什么问题 xff0c 请友好地指出来 xff0c 博主查证后会进
  • 【Java】文件读写和输入输出

    写在前面的话 xff1a 版权声明 xff1a 本文为博主原创文章 xff0c 转载请注明出处 xff01 博主是一个小菜鸟 xff0c 并且非常玻璃心 xff01 如果文中有什么问题 xff0c 请友好地指出来 xff0c 博主查证后会进
  • 【剑指Offer】题3:数组中重复的数字

    写在前面的话 xff1a 版权声明 xff1a 本文为博主原创文章 xff0c 转载请注明出处 xff01 博主是一个小菜鸟 xff0c 并且非常玻璃心 xff01 如果文中有什么问题 xff0c 请友好地指出来 xff0c 博主查证后会进

随机推荐

  • 【C语言】关于遍历字符串的三种方法

    写在前面的话 xff1a 1 版权声明 xff1a 本文为博主原创文章 xff0c 转载请注明出处 xff01 2 博主是一个小菜鸟 xff0c 并且非常玻璃心 xff01 如果文中有什么问题 xff0c 请友好地指出来 xff0c 博主查
  • 逻辑地址、虚拟地址、物理地址以及内存管理

    本文涉及的硬件平台是X86 xff0c 如果是其它平台 xff0c 嘻嘻 xff0c 不保证能一一对号入座 xff0c 但是举一反三 xff0c 我想是完全可行的 1 概念 物理地址 physical address 用于内存芯片级的单元寻
  • 为 CentOS 配置网络

    用桥接方式给CentOS配置网络 xff0c 这里我使用的是CentOS 6 5 第一步 点开虚拟机的设置 xff0c 网络连接选择桥接方式 xff0c 其他勾选按照下图 xff0c 如下图做相关的设置 xff1a 第二步 打开网络连接 x
  • 32位 idea启动出现“could not find main class com/intellij/idea/Main“错误解决方法

    idea启动出现 could not find main class com intellij idea Main 错误的解决方法 32位环境下安装idea及解决could not find main class com intellij
  • java实现获取两个list交集

    如何获取两个list的交集 xff0c 使用java8 的stream实现非常容易 java流实现 创建两个字符串list xff0c 两者都有重复的元素 xff1a List lt String gt list 61 Arrays asL
  • shell中$(( ))与$( )还有${ }的区别

    与 96 96 反引号 在bash shell中 xff0c 与 96 96 反引号 都是用来做命令替换 command substitution 用的 echo the last sunday is date d 34 last sund
  • apache 的网页内容显示是乱码

    apache 的网页内容显示是乱码 非常感觉下面各位的回答 xff0c http forum ubuntu org cn yaoms etcte HuntXu sevk shellex http linux chinaunix net ma
  • 字母及数字上标下标

    字母及数字上标下标 欢迎使用新的改变 欢迎使用 常用上标 常用下标 更多上标
  • 构造矩阵乘最优解

    void bracket int i int j if i 61 61 j cout lt lt 34 M 34 lt lt i else cout lt lt 34 34 int k 61 K i j bracket i k 1 brac
  • vs2012 出现LINK : fatal error LNK1104: 无法打开文件“kernel32.lib”问题

    首先 xff0c 我是在已经安装了vs2010的基础上安装的vs2012 xff0c 测试安装的时候发现最基本的helloworld程序都通不过 xff0c 出现LINK fatal error LNK1104 无法打开文件 kernel3
  • SerDes知识详解

    一 SERDES的作用 1 1并行总线接口 在 SerDes流行之前 芯片之间的互联通过 系统同步或者源同步的并行接口传输数据 图 1 1 演示了系统和源同步并行接口 随着接口频率的提高 xff0c 在系统同步接口方式中 有几个因素限制了有
  • enum : C#中的枚举类型,原来有这么多用法

    今天来的时候打开了MSDN扫了一眼C 里的枚举类型 蓦然发现这东西还有些新玩法 首先是简单介绍 xff0c 在此略过 因为enum用法很简单么 定义一个简单的枚举类型 xff1a enum Days Sat Sun Mon Tue Wed
  • ubuntu下安装cuDNN

    正确的安装cuDNN方式 xff0c 其实跟着官方安装说明进行安装就可以了 1 从https developer nvidia com cudnn上下载cudnn相应版本的压缩包 xff08 需要注册或登录 xff09 下载cuda对应版本
  • 面向对象(3)

    私有权限 封装的意义 xff1a 将属性和方法放到一起做为一个整体 xff0c 然后通过实例化对象来处理 xff1b 隐藏内部实现细节 xff0c 只需要和对象及其属性和方法交互就可以了 xff1b 对类的属性和方法增加 访问权限控制 私有
  • 【vnc远程桌面】未联网状态下使用离线包配置vnc

    系统为ubuntu18 04 amd64版本 本教程使用vino配置远程服务器 首先 xff0c 离线安装vino包后远程传输给待控制服务器 xff1a sudo apt update sudo apt get download apt c
  • 7.用选择排序法对一个数组进行排序。

    include lt stdio h gt define N 5 void datesort int a int i j k temp for i 61 0 i lt N 1 i 43 43 k 61 i for j 61 i 43 1 j
  • error while loading shared libraries: xxx.so.x"错误的原因和解决办法

    一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误 比如 tmux error while loading shared libraries libevent 1 4 so 2 cannot open shared o
  • Linux终端进度条显示进程执行进度

    在Linux执行费时操作 xff08 如tar xff09 时显示进度条 xff0c 以不至于让用户觉得程序卡死了 效果 文本进度条 结束后 xff1a 图形化字符进度条 文本进度条怎么做 进度条实现 网上有一些老六会说要下载一些工具 xf
  • 判断页面相似度的python实现

    判断页面相似度的python实现 xff1a 两天时间实现了一小部分 xff0c 大量其实是xpath解析以及字符串和文件操作 xff0c 性能还需要改善 xff0c 下面说一下步骤 xff1a 动态获取DOM树结构 xff1a 因为主要是
  • Win10下VScode+MSVC+CMake搭建C++开发环境

    最近工作需要大规模C 43 43 开发 xff0c 以往都是使用Visual Studio xff08 以下简称VS xff09 xff0c 虽然VS是一款很强大的IDE xff0c 但也同样带来过于庞大 xff0c 运行卡顿等问题 xff