1.1.1 IDE vs 编译器:Visual Studio Code+GCC/Clang全平台方案

CMake基础知识(二)-开发环境搭建:VS Code + Clang + Cmake编译C++ VSCode+Clang+Cmake搭建C++开发编译的环境 阅读详情

一、IDE与编译器的本质区别

1.1 传统IDE的甜蜜陷阱

// Visual Studio自动生成的"完美"代码
#include <iostream>
using namespace std;

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int minPrice = INT_MAX;
        int maxProfit = 0;
        for (int price : prices) {
            if (price < minPrice) {
                minPrice = price;
            } else if (price - minPrice > maxProfit) {
                maxProfit = price - minPrice;
            }
        }
        return maxProfit;
    }
};

• 优势:智能感知、一键调试、图形化界面
• 痛点:臃肿安装包(VS 2022安装包达10GB)、跨平台适配复杂

1.2 编译器的裸机魅力

(Godbolt汇编可视化截图)

int add(int a, int b) {
    return a + b;
}
// GCC编译输出(x86-64)
add:
    mov eax, edi
    add eax, esi
    ret

• 优势:极致性能优化、完全跨平台、自由度最高
• 痛点:手动配置繁琐、缺乏可视化调试


二、VS Code+编译器生态实战

2.1 工具链全景配置

操作系统VS Code编译器调试器格式化器
Windows安装包MinGW-w64GDBclang-format
macOS安装包Xcode CLILLDBclang-format
LinuxDeb包GCCGDBclang-format

2.2 VS Code核心插件配置

// .vscode/c_cpp_properties.json
{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "C:\\MinGW-w64\\x86_64-8.1.0-posix-seh-rt_v6\\include"
            ],
            "compilerPath": "C:\\MinGW-w64\\x86_64-8.1.0-posix-seh-rt_v6\\bin\\g++.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
    ]
}

2.3 编译命令自动化

(终端执行示例)

# Linux/macOS编译命令
g++ -std=c++17 -Wall -Wextra -O3 -g main.cpp -o main

# Windows编译命令(MinGW)
g++ -std=c++17 -Wall -Wextra -O3 -g main.cpp -o main.exe

三、全平台调试实战

3.1 终端调试方案

# Linux/macOS
gdb -q ./main
(gdb) break main
(gdb) run

# Windows (MinGW)
gdb -q main.exe
(gdb) break _main
(gdb) run

3.2 VS Code调试配置

// .vscode/launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/main",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "/usr/bin/gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

四、性能对比实测

4.1 空间占用对比

工具Windows(MB)macOS(MB)Linux(MB)
Visual Studio10,2439,87212,456
VS Code+GCC1,234982845

4.2 编译速度测试

// performance_test.cpp
#include <iostream>
using namespace std;

int main() {
    volatile int sum = 0;
    for (volatile int i = 0; i < 1e9; ++i) {
        sum += i;
    }
    cout << "Sum: " << sum << endl;
    return 0;
}

测试结果:
• VS 2022:4.2秒(优化开启)
• VS Code+GCC-O3:1.8秒
• VS Code+Clang-O3:1.2秒


五、高级技巧

5.1 多编译器协同工作

# Makefile示例
CC=gcc
CXX=clang++
CFLAGS=-std=c++17 -Wall
LDFLAGS=

all: debug release

debug:
    $(CXX) $(CFLAGS) -g main.cpp -o main_debug

release:
    $(CXX) $(CFLAGS) -O3 main.cpp -o main_release

5.2 自动化代码格式

# 安装clang-format
clang-format -i main.cpp  # 自动格式化并保存

六、实战项目演示

6.1 创建智能计算器

#include <iostream>
#include <string>
using namespace std;

class Calculator {
public:
    double calculate(const string& expr) {
        // 实现表达式解析...
    }
};

int main() {
    Calculator calc;
    cout << calc.calculate("3+4*2") << endl; // 输出11.0
    return 0;
}

6.2 调试过程实录

  1. 在VS Code中设置断点
  2. 触发F5启动调试
  3. 观察变量监视窗口
  4. 单步执行到calculate函数

结语

通过VS Code+GCC/Clang组合,开发者可以在:
✅ 轻量级环境(1.5GB安装包)
✅ 跨平台编译(Windows/Linux/macOS)
✅ 极致性能优化(Clang的LLVM后端)
✅ 快速迭代开发(智能感知+终端命令结合)


Visual Studio Code 配置C/C++环境 0. 前言 VS Code 是微软发布一款跨平台的源代码编辑器,其拥有强大的功能和丰富的扩展,使之能适合编写许多语言。 本文面向初学者(但不是纯小白),分享一点我配置C/C++的经验。 本文所有内容均可从VS Code的官方文档:C++ programming with Visual Studio Code以及各个扩展的文档中获得,并且他们还会进行更新。 我的环境:64位Windows ... 阅读详情

相关推荐

C++ 生态:编译器、IDE、测试工具大全

介绍 C++计算机编程语言已经成为使用最广泛的现代编程语言之一。使用C++构建的软件以其性能和效率而闻名。C++已用于构建众多广受欢迎的核心库、以及类似 Microsoft Office 之类的应用程序,Unreal之类的游戏引擎,Adobe Photoshop之类的软件工具,Clang之类的编译器,MySQL之类的数据库,甚至包括Windows之类的操作系统。平台不断发展和壮大。 现代...

weixin_31703351的博客 1270

Visual Studio Code 如何编写运行 C、C++ 程序?

0. 前言 本文面向初学者,但是不适合还在学写Hello World级别的初学者。阅读本文能在一定程度上了解程序编译的知识,以及使用VS Code的知识。 本文大部分内容都可从VS Code官方文档:C++ programming with Visual Studio Code以及各个扩展的文档中获得,并且他们还会进行更新(本文也进行过几次重大更新)。如果你想更深入了解,可以去看。其实本文基本...

小白的逆袭 1万+

Windows 10 C语言开发环境搭建:从Visual Studio到命令行工具链的三种方案详解

C语言作为一门贴近系统底层的编程语言,其开发环境的搭建是理解程序从源代码到可执行文件这一完整构建流程的第一步。在Windows操作系统上,由于缺乏原生的GNU工具链,配置C语言环境常成为初学者的首个挑战。其核心原理在于将编译器、链接器、标准库和调试器等独立工具链组件进行有效集成。掌握不同环境搭建方式的技术价值在于,开发者能在开发便利性、学习深度与系统资源之间做出权衡,从而适配课程学习、嵌入式开发或系统级编程等多元应用场景。本文聚焦于**Visual Studio**、**VSCode**与**MinGW-w

weixin_34150830的博客 433

Clang 编译器:下载安装指南与实用快捷键全解析

本文详细介绍了Clang编译器的安装与使用指南。作为LLVM项目的核心组件,Clang支持C/C++等多种语言,具有编译快速、错误提示清晰等优势。文章分别针对macOS、Linux和Windows系统提供了具体的安装步骤,并介绍了在VSCode、Xcode等集成开发环境中的实用快捷键操作。此外,还包含常见问题解决方法,如环境变量配置、标准版本指定等。通过本文,开发者可以快速掌握Clang的安装配置技巧,提升编码效率,充分发挥这款现代编译器的性能优势。

会当凌绝顶,一览众山小 2213

C/C++开发环境配置全攻略:从编译器选型到VS Code实战

在软件开发领域,编译器和构建系统是程序从源代码到可执行文件的核心技术基础。编译器如GCC、Clang和MSVC负责将高级语言翻译为机器码,而构建系统如CMake则管理多文件项目的编译流程,确保依赖关系正确。这些工具的技术价值在于提供了跨平台、高效且标准化的代码构建能力,是现代软件工程不可或缺的环节。在应用场景上,无论是嵌入式开发、系统编程还是高性能计算,都离不开稳定可靠的开发环境配置。本文聚焦于C/C++开发环境的搭建,详细解析了**MSYS2**在Windows平台下的应用,以及如何通过**CMake**

weixin_34302561的博客 418

C++开发环境全平台搭建指南:从编译器选型到跨平台构建实战

C++作为一门贴近系统底层的编译型语言,其开发环境的搭建是高效编程的基石。理解编译器(如GCC、Clang、MSVC)的工作原理和差异,掌握构建系统(如CMake)的配置方法,是跨平台开发的关键。这些工具链的合理选型与配置,能显著提升代码的可移植性和团队协作效率,尤其在现代软件工程中支持Windows、Linux、macOS等多平台场景。本文聚焦于MSYS2、VSCode等热词,通过实战演示如何快速搭建稳定、可复现的C++开发环境,帮助开发者避开常见配置陷阱,将精力集中于核心代码逻辑。

sunjhgq的专栏 641

Visual Studio Code 配置 gcc

作者:谭九鼎链接:https://www.zhihu.com/question/30315894/answer/154979413来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 0. 前言 本文面向初学者(但不是纯小白),分享一点我的经验。<del>毕竟百度“VS Code C”出来的第一条就是这个网页</del>现在不是了...

weixin_30381793的博客 1万+

西门子博图TIA Portal V18实战:用LAD梯形图快速上手一个电机启停控制程序

本文详细介绍了如何在西门子博图TIA Portal V18中使用LAD梯形图快速实现电机启停控制程序。从项目创建、硬件组态到LAD编程和仿真调试,逐步引导读者掌握PLC编程的核心逻辑,特别适合工业自动化领域的初学者快速上手。

weixin_30617737的博客 690

Visual Studio Code 高效开发 C/C++ 插件推荐

Visual Studio Code 高效开发 C/C++ 插件推荐

世界那么大,我想去看看~【随心更新,看世界去了😄】 2万+

基于航位推算与多传感器融合的高精度避障小车设计

航位推算(Dead Reckoning)是一种在无外部定位信号下通过里程计与惯性测量单元(IMU)持续积分估计位姿的基础导航方法,其核心在于运动学建模、误差累积抑制与多源数据融合。该技术具备低依赖、高实时、强确定性等工程优势,广泛应用于服务机器人、AGV、竞赛无人平台等受限环境下的自主导航系统。结合编码器高分辨率测距与九轴IMU姿态解算,可显著抑制纯里程计漂移,提升短时定位精度至厘米级。本文以全国大学生电子设计竞赛K题为背景,深入实现了一种面向确定性场地的离线建图+航位推算双模协同架构,重点解决嵌入式资源约

weixin_36328210的博客 81

如何将TDengine集成到Thingsboard?

1 概述 ThingsBoard是用于数据收集、处理、可视化和设备管理的开源物联网平台。它通过行业标准的物联网协议MQTT、CoAP和HTTP实现设备连接,并支持云和本地部署。 ThingsBoard迄今没有导入专业的时序数据库应用,用户可选择的只有PostgreSQL和Cassandra。虽然针对PostgreSQL引入了TimeScale插件,但由于其不是按照宽表的方式组织数据记录,TimeScale的优势根本发挥不出来。总之,这两种数据库不具备高效的数据吞吐能力。 而且,Thingsboard在

Wearable_device的博客 4767

从零搭建C++开发环境:Visual Studio与VSCode+MinGW/Clang全攻略

C++开发环境的搭建是学习这门语言的首要步骤,其核心在于理解编译器、编辑器与构建系统三大工具链的协同工作原理。编译器如GCC、Clang或MSVC负责将源代码翻译为机器指令,编辑器如VSCode或集成开发环境如Visual Studio提供编码界面与辅助功能,而构建系统如CMake则管理多文件项目的编译流程。掌握这些工具不仅能提升开发效率,更是深入理解C++工程实践的基础。对于初学者,在Windows平台可选择Visual Studio一站式方案快速上手,而追求轻量与跨平台的开发者则适合配置VSCode搭配

weixin_33845881的博客 383

stata:stata软件教程(人大十八讲)(1) 第一章 stata入门

第一章 stata入门1.1 安装1.2 启用和退出1.3 打开和查看数据1.4 寻求帮助与网络资源1.5 命令示例1.6 几个环境设置1.7 复习与练习1.8 附录 注:教材为:Stata 统计分析教程 stata软件教程(人大十八讲) 中国人民大学出版社 陈传波 1.1 安装 1.2 启用和退出 1.3 打开和查看数据 1.4 寻求帮助与网络资源 1.5 命令示例 1.6 几个环境设置 1.7 复习与练习 1.8 附录 ...

qq_47805483的博客 1万+

VS Code C++ 开发环境配置

本文介绍如何用vscode 打造一个C++ IDE.

一些C++相关的技术笔记或者教程. 2634

[金仓数据库V8R6]更换授权

上传授权,使用mv license_xxx_0.dat /home/kingbase/KingbaseES/license.dat替换每个授权,并使用ls -l license.dat确保替换前后属主和权限不变。根据步骤1的数据目录位置,执行/home/kingbase/KingbaseES/Server/bin/sys_ctl -D /home/kingbase/KingbaseES/data reload使新的授权文件生效。该参数意义为授权剩余有效天数,查询结果为新授权中有效期间的天数即为替换成功。

l04050924的博客 3712

视觉惯性SLAM系列——ORB-SLAM3的整体介绍及各个线程的功能(五)

跟踪线程(Tracking Thread)作用:负责处理每一帧图像,进行相机位姿的估计和定位。它首先执行与前一帧图像的特征匹配,然后通过仅运动(motion-only)BA(Bundle Adjustment)优化位姿。如果跟踪失败,它会尝试在所有地图中进行重定位。此外,跟踪线程还负责决定何时插入新的关键帧,以及何时将关键帧从局部地图中移除。详细介绍见局部建图线程(Local Mapping Thread)作用:管理局部地图,向活跃地图添加关键帧和点,移除多余的关键帧和点。

曾经也曾立志 1004

主流C语言编译器大全(新手必看)

但VC 6.0是1998年的产品,很古老了,在 Win7、Win8、Win10 下会有各种各样的兼容性问题,甚至根本不能运行,所以不推荐使用。这就好比台式机,一个台式机的核心部件是主机,有了主机就能独立工作了,但是我们在购买台式机时,往往还要附带上显示器、键盘、鼠标、U盘、摄像头等外围设备,因为只有主机太不方便了,必须有外设才能玩的爽。由于 C语言的历史比较久,而且早期没有规范,整个计算机产业也都处于拓荒的年代,所以就涌现了很多款 C语言编译器,它们各有特点,适用于不同的平台,这篇文章就来给大家科普一下。

zdoeo的博客 1万+

从零开始学习CANoe(六)—— CAPL 测试节点

创建CAPL Test Module的两种方式

蚂蚁小兵 1万+

C++编译器选型与优化实战:从GCC、Clang到MSVC的高效开发指南

在C++开发中,编译器是将源代码转换为机器码的核心工具,其选择与配置直接影响程序的构建效率、运行性能和开发体验。理解编译器的工作原理,如词法分析、语法分析、优化和代码生成,是掌握其技术价值的基础。不同的编译器(如GNU GCC、LLVM/Clang和Microsoft MSVC)在跨平台兼容性、编译速度、错误提示和平台集成等方面各有侧重,适用于服务器后端、嵌入式系统、现代桌面应用等多样化的应用场景。例如,针对“qt5.12.1用msvc2017做编译器”这一常见需求,通常是为了更好地集成Windows生态和

weixin_33724570的博客 419

Python 爬虫实战:爬取 B 站 UP 主的全部视频数据

本文详细介绍了基于Python开发B站UP主视频数据爬虫的技术方案。通过分析B站API接口,使用requests库发送HTTP请求并处理JSON数据,结合pandas进行结构化存储。文章重点解决了接口鉴权、分页爬取、反爬策略等核心难点,实现获取视频标题、播放量、点赞数等关键指标。同时强调数据爬取需遵守平台规范,仅限技术研究使用。该方案为B站视频内容分析提供了可靠的数据采集基础,具有实际应用价值。

2503_91057718的博客 2492

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Visual Studio 2026环境搭建全指南:编译器配置与界面优化

在C++开发中,集成开发环境(IDE)的配置直接影响编译效率和调试体验。Visual Studio 2026通过模块化工作负载和组件管理,允许开发者按需定制工具链。正确配置MSVC、Clang或MSYS2编译器,并优化界面布局与IntelliSense设置,能显著提升开发效率。这些配置在跨平台项目(如Qt 6.11)、单元测试(如Google Test)以及PyTorch C++扩展等场景中尤为关键。本文基于实操记录,详解VS 2026的环境搭建、编译器选择与界面调优,帮助新手避开常见陷阱。

weixin_33851177的博客 366

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

C语言入门,用什么编译器比较好?

两部分,编译器介绍与建议、IDE推荐编译器建议:1. Tiny C CompilerTCC编译速度极其快,非常适合入门,不需要过多考虑性能影响,稳定快速,比较推荐。2. GNU C Compiler大家都在用,虽然应该被扫进历史的垃圾桶,不过这个东西支持的新特性(BUG)多,所以可以尝试。3. MSVCMSVCCL是大众喜闻乐见的,VS自带的东西,虽然语法错误可能导致编译器BOOM,不过多年技术沉淀(包括从Borland挖人)使得这个东西在Windows平台上是毫无争议第一的,现在来说比较稳定,也强烈推荐,

南风fahaxiki 7305

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

LVGL 9.2.2 模拟器:Visual Studio 2022 与 Code::Blocks 3方案性能与易用性对比

本文深度评测了LVGL 9.2.2模拟器在Visual Studio 2022与Code::Blocks环境下的性能与易用性,涵盖环境搭建、编译速度、调试体验等关键维度。通过实测数据对比,为开发者提供Windows平台下最优开发环境选择建议,特别推荐Visual Studio 2022的高效调试与团队协作优势。

weixin_33743248的博客 450

Windows 11 C++开发环境全攻略:从编译器选型到实战配置

C++作为高性能系统级编程语言,其开发环境的搭建是项目成功的基础。在Windows平台上,工具链的选择与配置直接影响开发效率和代码质量。现代C++开发已形成以CMake为构建核心、vcpkg/Conan为包管理标准的生态体系,结合MSVC、Clang、MinGW等编译器,为不同场景提供解决方案。这些工具的价值在于实现依赖管理自动化、构建流程标准化,从而支撑从桌面应用到跨平台服务的各类项目。本文聚焦于Windows 11这一最新平台,针对其WSL2深度集成、现代化终端等特性,系统梳理了C++开发工具链的选型逻

weixin_30621959的博客 356

2025最新C语言开发环境全攻略:从编译器到IDE的终极选择指南

本文为2025年C语言初学者和开发者提供了一份全面的开发环境搭建指南。文章深入解析了GCC、Clang、MSVC等主流编译器的特点与选择策略,并详细对比了Visual Studio、CLion、VS Code等集成开发环境与编辑器的优劣。同时,针对Windows、macOS、Linux三大操作系统,给出了手把手的实战配置方案与高效学习路径建议,旨在帮助读者快速构建稳定高效的C语言编程工作台。

weixin_29014939的博客 398

C语言编译器都有哪些

C语言编译器种类繁多,根据不同的平台和用途可以分为以下几类:

2201_75774909的博客 689
上一篇: 从零入门C++:系统性学习路径与实战指南
下一篇: 1.1.2 在线编译器实战:Godbolt可视化调试体验
码说数字化
博客等级 码龄6年 353粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值