当前位置: 首页 > ai >正文

C++ 环境配置

C++ 环境配置

头痛,都已经 C++26 了,还没有一个官方现代的包管理器

工具链

c++ 链接编译的结构就决定了这一块不能像 Python 一样编译器直接运行代码,配置相对比较麻烦

主要流程:

  • 构建系统生成器,通过项目配置生成构建脚本:CMake、QMake
  • 编译器,将代码翻译为机器码:GCC、MSVC、Clang
  • 构建工具,通过构建脚本调用编译器:Make、Ninja、NMake

构建系统生成器

现在一般使用 CMake,就是项目文件夹中的 CMakeLists.txt

QMake 是 QT 使用的构建工具,但 QT 也在转向 CMake

cmake 路径 参数

-G 可以指定生成器

  • MinGW Makefiles:适用 MinGW
  • Ninja:适用 Ninja
  • NMake Makefiles:适用 NMake

编译器

核心出装

GCC 原版是在 Linux 平台上,MinGW 是把 GCC 移植到 Windows 中的工具链,TDM 则是 MinGW 的定制版本

Clang 也是种流行的编译器(实质前端),底层是 LLVM

MSVC 则是微软自己搞的一些东西

构建工具

调用编译器进行编译

make 是在 Linux 环境下,需要安装编译后的文件。windows 平台下安装后,一般需要自行配置系统目录

make
make install
mingw23-make
nmake

基础配置

安装以下程序后,大部分代码就能跑起来了

  1. tdm64-gcc-10.3.0-2.exe 编译环境
  2. cmake-4.0.0-rc4-windows-x86_64.msi 编译工具
  3. CLion-2024.3.5.exe 编写代码

在终端运行以下语句以检查安装是否正常

gcc -v
cmake --version

CLion 现在的版本已经内置了 MinGW,单独安装 TDM 是为了更好的支持 Cmake 以及自动配置环境变量

独立 MSVC 编译器

Microsoft C++ Build Tools,有些库必须用这个编译才能运行,比如 windows 下的 pybind11,非必要不是很想用这玩意

下载安装包后会发现实质是 Visual Studio Installer,但只会安装 MSVC 要求的那部分,可以把包管理器 VCPKG 一起安装了,会吃掉电脑 9G 左右空间

安装后在 CLion 中配置工具链,正常情况下指定安装路径后就能识别了 xxx\2022\BuildTools

接下来可以配置系统变量,注意需要选择当前环境和目标环境 xxx\2022\BuildTools\VC\Tools\MSVC\14.44.35207\bin\Hostx64\x64

在终端运行以下语句以检查配置是否正确

cl
link
http://www.xdnf.cn/news/14205.html

相关文章:

  • XRecorder:安卓录屏,轻松高效
  • 嵌入式PADS中Route布线操作与实现
  • OVS Faucet Tutorial笔记(下)
  • 动手学深度学习Pytorch版(李沐)(5-7章)
  • 使用STM32设置GPIO中断
  • 20250611题解
  • 抖音蓝牙遥控器芯片方案、自拍器蓝牙芯片方案 简易版 io控制
  • 高精度模板
  • 【Spring源码核心篇-08】spring中配置类底层原理和源码实现
  • torchsummary库中的summary()函数
  • Kerberos快速入门之基本概念与认证基本原理
  • OpenLayers 创建坐标系统
  • Flower框架中noise_multiplier与clipped_count_stddev的关系
  • [智能客服project] AI代理系统 | 意图路由器
  • pikachu靶场通关笔记30 文件包含01之本地文件包含
  • Typecho安装后后台 404 报错解决
  • CMake实践: 以开源库QSimpleUpdater为例,详细讲解编译、查找依赖等全过程
  • Reqable・API 抓包调试 + API 测试一站式工具
  • 17_Flask部署到网络服务器
  • 【软测】接口测试 - 用postman测试软件登录模块
  • 微机原理与接口技术,期末冲刺复习资料(汇总版)
  • Linux进程间通信(IPC)详解:从入门到理解
  • H5 技术与定制开发工具融合下的数字化营销新探索
  • 高效录屏工具推荐:从系统自带到专业进阶
  • 函数调用过程中的栈帧变化
  • 普通Dom转换为可拖拽、最大化、最小化窗口js插件
  • 【在线五子棋对战】六、项目结构设计 工具模块实现
  • 【unitrix】 1.6 数值类型基本结构体(types.rs)
  • 商用油烟净化器日常维护的标准化流程
  • Arduino入门教程:4-1、代码基础-进阶