自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (5)
  • 收藏
  • 关注

原创 FastMCP报错:421 Misdirected Request

文章摘要:解决InvalidHostheader错误可通过修改FastMCP配置,添加transport_security参数并禁用DNS重绑定保护。具体方法为:在FastMCP初始化时设置transport_security=TransportSecuritySettings(enable_dns_rebinding_protection=False),同时保留json_response=True等原有参数。该方案适用于需要绕过主机头验证的场景,但需注意可能带来的安全风险。

2026-07-01 18:44:52 102

原创 mini-dog-c编译器开发 - 06 测试与总结

本文介绍了mini-dog-c编译器的测试框架设计与实现。测试分为词法分析、语法分析和解释器三个模块,采用轻量级测试框架实现。词法分析测试验证了基础Token识别能力;语法分析测试确保AST结构正确构建;解释器测试则覆盖了表达式运算、变量赋值、条件分支、函数调用等核心功能。文章还指出了当前实现的局限性(如不支持负数字面量、错误报告不完善等),并提出了后续优化方向。最后回顾了编译器整体架构,从源代码到Token流再到AST的完整处理流程,为读者提供了进一步学习编译器开发的建议路径。

2026-06-30 20:45:07 240

原创 mini-dog-c编译器开发 - 00-目录与架构

mini-dog-c是一款小型C语言编译器。该编译器采用标准编译架构,包含词法分析器(将源代码转为Token流)、语法分析器(生成抽象语法树AST)和语义分析/代码生成模块。项目已完成全部6个开发阶段,目录结构清晰,包含源代码、头文件和测试用例。支持的语法特性包括各类字面量、操作符、分隔符和关键词。这个项目旨在帮助开发者理解编译器的工作原理,代码组织规范,测试覆盖全面,是一个教学性质的编译器实现范例。

2026-06-30 20:42:49 46

原创 在Linux x86_64系统中启动Linux aarch64容器

摘要:本文介绍了两种在Docker中运行跨架构容器的方法。第一种是通过multiarch/qemu-user-static或tonistiigi/binfmt注册QEMU模拟器支持;第二种是手动下载qemu-aarch64-static并挂载到容器中运行ARM64架构的Ubuntu镜像。两种方法都能实现在非ARM64主机上运行ARM64容器,其中第二种方法需要手动配置QEMU模拟器文件。

2026-05-11 22:12:48 28

原创 mini-dog-c编译器开发 - 05 解释器与代码生成

本文介绍了mini-dog-c解释器的实现细节。解释器通过遍历AST直接执行代码,核心包括:1) 值系统(Value)用联合体表示不同类型数据;2) 环境管理(Env)实现作用域链和变量查找;3) 表达式求值处理各种运算符;4) 函数调用通过创建局部环境和参数绑定实现。特别强调了内存管理机制,规定调用者负责释放返回值,操作数由操作函数释放。解释器执行流程包括词法分析、语法分析生成AST,再遍历AST进行求值。该实现展示了如何在不生成中间代码的情况下直接解释执行程序。

2026-05-04 20:11:16 339

原创 mini-dog-c编译器开发 - 04 递归下降解析器

本文介绍了递归下降解析器的原理与实现方法。递归下降解析器通过将每个语法规则对应为一个函数来构建AST节点,相比传统解析器生成工具更直观简单。文章详细讲解了表达式解析的优先级处理机制(9级优先级)、赋值表达式的链式处理、主表达式的匹配逻辑,以及各种语句(let声明、函数声明、if语句等)的解析实现。同时介绍了错误恢复的恐慌模式策略和测试方法。递归下降解析器的核心特点是代码即语法,通过函数分层处理优先级,while循环处理左结合,递归处理右结合,为后续解释器的实现奠定了基础。

2026-05-04 20:09:48 173

原创 mini-dog-c编译器开发 - 03 抽象语法树(AST)

本文介绍了mini-dog-c编译器中AST的设计与实现。AST通过树形结构表达代码的层次关系和运算优先级,采用枚举+联合体的方式组织不同类型的节点(如变量声明、函数声明、表达式等),既节省内存又便于操作。文章详细说明了AST节点的数据结构设计、创建函数、打印调试方法以及内存管理机制,并展示了语法规则与AST节点的对应关系。该设计为后续语法分析器将Token流转换为AST奠定了基础。

2026-05-04 20:08:41 376

原创 mini-dog-c编译器开发 - 02 词法分析器实现

本文详细介绍了mini-dog-c编译器中词法分析器的实现原理。词法分析器负责将源代码字符序列转换为Token序列,包含标识符、关键词、数字、字符串等各类Token。文章阐述了核心数据结构Lexer和Token的定义,重点讲解了标识符/关键词识别、数字解析、字符串处理(含转义字符)、双字符操作符识别等关键算法实现。同时介绍了注释与空白处理、错误处理机制,并通过测试用例验证了词法分析器的正确性。最后总结了开发过程中遇到的典型Bug及修复方案,为后续抽象语法树的实现奠定了基础。

2026-05-04 20:07:14 371

原创 mini-dog-c编译器开发 - 01 功能需求与设计

本文介绍了mini-dog-c编译器的开发设计,重点阐述了其功能需求和架构设计。该编译器支持多种Token类型,包括标识符、字面量和运算符等,并定义了详细的语法规则(BNF表示)。编译器采用三阶段处理流程:词法分析将源代码转为Token流,语法分析构建AST树,解释器执行AST操作。架构设计包含词法分析器、语法分析器、AST定义和解释器等模块,采用递归下降解析方法。项目将分五个阶段开发,首先实现词法分析器功能。该编译器选择解释执行而非代码生成,旨在简化教学展示过程。

2026-05-04 20:05:52 412

原创 用代码生成内容,再自动部署:解锁静态页面的动态魔力

在Web开发中,静态页面(如HTML/CSS/JS)通常以“静态”内容呈现,但通过现代自动化工具和流程,我们可以让静态页面“动态”更新内容,无需复杂服务器或实时计算。这种“用代码生成内容,再自动部署”的技术,正是现代JAMstack架构的核心之一。本文将带你深入理解其原理,并通过实战案例演示如何实现。通过“用代码生成内容,再自动部署”,我们打破了静态页面的局限,以极低成本实现了动态内容的魔力。这种模式不仅是技术实现的突破,更代表了一种高效、可靠的开发范式——让机器完成重复劳动,让开发者聚焦核心逻辑。

2026-05-01 10:25:09 352

原创 Visual Studio 2019下载地址

Visual Studio旧版本安装程序非MSDN订阅用户通过官网已无法下载,下面的下载地址怎么来的已经记不清了,反正能用。记录备用,并且帮助有需要的网友。如果你需要2017,把16换成15试试看。

2026-03-24 20:51:58 57

原创 在Linux x86_64系统中编译mission

如果没有装好gtest,把相关的单元测试从CMakeLists.txt中移除,这是最省事、编译最快的方式。以下在ubuntu18.10 + gcc8.3编译通过。

2026-03-14 21:51:27 68

原创 Rust crates最近下载量前5000(截至2025/12/13 10:45)

hashbrownsyngetrandombitflagsitertoolsrand_coreindexmaprandlibcbase64thiserrorquotecfg-ifserdesocket2memchrautocfghecklogrustixserde_jsononce_cellccitoasmallvecryuclapregexzerocopy。

2025-11-28 21:05:29 442

原创 Osmo Action 6使用体验

摘要:大疆OsmoAction6运动相机配备可变光圈和1/1.1英寸传感器,支持4K/120fps拍摄,20米防水,售价2998元。虽然拍照和视频效果出色,但作为直播设备存在明显缺陷:广角模式无法关闭、无法调整焦距、不支持横竖屏切换,导致绿幕直播效果不佳。用户通过配件可解决横竖屏问题,但前两项缺陷严重影响使用体验,目前只能选择退货,期待厂家通过固件升级改进。

2025-11-23 21:53:30 840

原创 从Google Chrome商店下载CRX文件

【实用技巧】轻松下载Chrome扩展离线安装包:安装GetCRX扩展后直接下载目标扩展,实测有效。避免百度搜索99%无效结果,节省时间。方法简单快捷,仅需两步操作。

2025-10-26 12:24:12 476

原创 业余无线电FT8信道调制之LDPC编码

摘要:LDPC编码算法将91位消息扩展为174位码字(含83位校验位),采用(174,91)规则LDPC码,列重为3。算法通过预定义的83×91生成矩阵(以字节数组形式存储)进行编码:先将消息写入码字缓冲区,再计算校验位(通过比特乘法与奇偶校验)。校验结果通过位操作写入相应位置。该实现优化了存储(用22字节存174位)和计算效率,适用于数字通信中的前向纠错。生成矩阵可转换为Tanner图,但因规模过大难以完整展示。

2025-06-07 15:57:25 365

转载 一招解决Android Studio调试时一直显示Waiting For Debugger

如果在首次运行或重新安装某个应用时,通过调试模式启动,可能会遇到“WaitingForDebugger”对话框,且无法通过关机、卸载重装或终止服务解决。此时,可以使用adb shell am clear-debug-app命令来清除调试应用的状态,从而解决问题。这一命令能够有效终止调试模式,使应用恢复正常运行。

2025-05-14 19:53:29 578

原创 从自己电脑的浏览器访问阿里云主机中运行的LLaMA-Factory webui

阿里云主机上LLaMA-Factory的webui在0.0.0.0:7860侦听,无法直接打开,需要通过代理的方法访问。这种方法无需修改源码和安装frp等工具。用这个地址即可访问到webui界面。

2025-03-08 19:12:56 892

原创 mini-dog-c编译器之词法分析

mini-dog-c 是一个小型的 C 语言编译器,是我学习和理解编译器基本工作原理的实践项目。其词法分析器能够识别 C 语言的基本语法元素,包括常见的标识符、整数和浮点数字面量、布尔字面量以及字符串字面量。此外,它还支持基本的算术和逻辑操作符、比较操作符以及多种分隔符。在关键词方面,mini-dog-c 支持函数定义、变量声明、条件语句和返回语句等基本控制结构。

2025-01-05 18:34:00 645

原创 GDB笔记

【代码】GDB笔记。

2025-01-03 16:23:56 171

转载 [转载]rpath和runpath的区别

因为只有rpath的情况下,一旦设置了rpath,那么在运行时,其优先级是最高的,且我们无法通过其它手段(如通过设置LD_LIBRARY_PATH等)覆盖默认的库路径,我们必须重新编译程序才能加载其它路径下的库,这对于某些情况下是很不方便的。在搜索程序或库的间接依赖时,rpath和runpath是不同的,rpath设置的路径对间接库的搜索也生效,即搜索间接库时,也会优先从rpath指定的路径中搜索。我们知道,在程序运行的时候,会依赖一些动态库,只有所依赖的库文件在运行的机器上存在,才能运行程序。

2025-01-02 18:56:16 310

原创 Ubuntu 24.04 APT源配置详解

了解Ubuntu 24.04的APT源配置对于系统管理和软件更新至关重要。通过合理配置这些源和分类,用户可以确保他们的系统获得必要的更新,同时也可以访问到更广泛的软件资源。希望本文能帮助你更好地理解和配置Ubuntu的APT源。

2024-12-24 09:26:04 2291

原创 拉取麒麟镜像

【代码】拉取麒麟镜像。

2024-12-23 18:22:58 266

原创 QEMU虚拟x86_64客户机

主要是给自己看的,备忘。

2024-12-15 22:18:04 216

原创 如何在程序启动时中断?

如果要中断服务的启动,需要在windbg.exe后面加上参数:–server tcp:port=5005,中断后启动一个windbg实例作为客户端去连接服务端,就可以调试了,不过程序30秒没有报告状态会被服务管理器作超时处理,所以需要在注册表中将这个超时值设大一点,具体位置可以百度一下。通常在WinDBG中可以通过“Open Executable”指定程序、参数、启动目录来启动一个程序并中断在入口处,以便设置断点或单步跟踪。

2024-12-14 19:22:53 336

转载 【WSL】压缩虚拟机的虚拟硬盘文件(VHDX)以减少空间占用

中创建文件,虚拟硬盘的大小就会增加。但是,当删除这些文件时,虚拟硬盘的大小并不会相应减小。这是因为虚拟硬盘文件(VHDX)不会自动收缩。是 Windows 系统中的一个命令行磁盘分区工具,它可以用来创建、删除和管理驱动器或分区的大小和类型。的虚拟硬盘占用了差不多 70GB 空间,实际上虚拟机的文件系统只使用了 10GB 左右。来格式化驱动器,更改驱动器的字母,以及执行其他与磁盘和分区相关的任务。WSL2 使用的是动态硬盘,当在。操作前建议先备份 WSL 系统。启动 diskpart。打开一个新的终端窗口。

2024-11-24 18:12:53 2537

原创 c++20模块示例

【代码】c++20模块示例。

2024-11-17 10:54:54 392

原创 使用C++11将GBK字符串转换为UTF-8

【代码】使用C++11将GBK字符串转换为UTF-8。

2024-09-11 14:51:03 800 1

原创 利用Absolute Enable Right Click & Copy突破网站内容复制限制

许多的网站对内容复制有限制,不是要求登录就是要付费,完全违背互联网的分享精神,是可忍孰不可忍。后来找到一款firefox扩展Absolute Enable Right Click & Copy可突破绝大多数网站的限制(目前还没发现哪个网站不行)。图标,开启Enable Copy和Absolute Mode,然后选中要复制的内容Ctrl+C或点击右键菜单复制即可。使用方法:打开要复制内容的页面后,在firefox浏览器右上角找到并点击。

2024-08-19 21:34:25 1487 1

原创 如何防止第三方DLL注入自己的进程?

设置 (0x1) 以防止进程加载未由 Microsoft、Windows 应用商店和 Windows 硬件质量实验室 (WHQL) 签名的图像;测试结论是没有起到作用,这是因为SetProcessMitigationPolicy是在程序启动后调用的,调用前就已经被注入了。设置 (0x1) 以防止进程加载未由 Windows 应用商店签名的图像;设置 (0x1) 以防止进程加载未由 Microsoft 签名的图像;这个结构包含用于加载映像的进程缓解策略设置,具体取决于映像的签名。

2024-07-14 11:31:13 1471

原创 突破封装:C++ 类私有成员访问的“黑魔法”——友元注入技术

C++ 的访问控制(private / protected)是编译期概念,旨在封装实现细节,避免外部误用。但有时出于调试、序列化或单元测试的需要,我们可能希望临时访问私有成员。虽然官方不推荐破坏封装,但了解其中的“黑魔法”能加深对 C++ 模板、友元和实例化规则的理解。本文将介绍一种通过“显式模板实例化 + 友元注入”来获取私有成员指针的技巧。

2024-06-07 22:26:53 332

原创 Win11家庭版启用或关闭Windows功能中没有hyper-v解决方法

右键以管理员权限运行,安装完成后按提示重启一下就好了。

2024-05-18 17:37:17 2858 3

原创 Ubuntu22.04 x86_64下为ARM64平台交叉编译Boost1.85

需要编译的库根据实际需要增减,执行时写到一行,这里分行便于阅读。

2024-04-18 14:23:11 942

原创 criu编译依赖项

需用apt工具安装。

2024-03-21 22:17:38 588

原创 boost.redis崩溃的解决方法

使用boost.redis的协程一定要co_spawn在strand对象中。

2024-03-04 11:09:35 504

原创 Windows10禁用驱动签名验证

以管理员身份启动命令提示符,然后运行以下命令:

2024-01-24 21:36:08 675

原创 使用boost.hana在编译期加密字符串

在当今数字时代,软件安全问题愈发凸显,攻击者利用各种手段对应用程序进行破解和逆向工程的尝试也日益猖獗。其中,通过使用OllyDbg、IDA等软件加载应用程序,分析程序中的字符串,进而找到关键条件判断,实施软件破解的攻击方式屡见不鲜。为了有效应对这一类威胁,开发者们开始探索各种方法来增加软件的安全性,其中字符串加密被认为是一项有效的措施。本文将深入探讨字符串加密的重要性以及实现方法。

2024-01-12 19:42:06 662

原创 boost.hana学习笔记之map

Hana是C++元编程的头文件库,适用于类型和值的计算。它提供的功能是成熟的Boost.MPL和Boost.Fusion库提供的功能的超集。通过利用C++11/14实现技术和习惯用法,Hana拥有比以前的元编程库更快的编译时间和运行时性能,同时显着提高了过程中的表达能力。此外,所有键都必须是Hashable的,并且任何两个具有相等哈希值的键在编译时都必须是Comparable的。hana::map是基本的关联容器,需要唯一的,可比较的和哈希的关键字。例如,在模板参数推导期间,这不是可以进行模式匹配的东西。

2024-01-11 21:27:19 1051

原创 转义Windows批处理中的感叹号

启用了延迟扩展后,感叹号会补当作%一样的特殊字符处理,例如:!,当需要将感叹号用作普通字符时,需要作转义处理。除以上正常的用法以外的,均是错误的。

2024-01-05 10:58:50 1441 1

原创 解决apt报错:/main/binary-i386/Packages 404 File not found

E: 无法下载 http://192.168.1.1:8000/dists/Jammy-updates/main/binary-i386/Packages 404 File not found [IP: 192.168.1.1 8000]E: 无法下载 http://192.168.1.1:8000/dists/Jammy/main/binary-i386/Packages 404 File not found [IP: 192.168.1.1 8000]正在读取软件包列表... 完成。

2023-11-20 15:05:09 652

C/C++应用程序路线图(pdf)

摘要: 本文针对(至少到目前为止)在新的和现有的应用程序中还没有以Microsoft .NET Framework 为目标开发平台的C++ 程序员。文中为如何转向.NET Framework 而且避免 抛弃现有代码中的投资提供了一些指导,并阐述了为什么应该考虑转向.NET Framework , 这不仅适用于新的开发工作,对现有应用程序亦然。

2009-03-05

包含rapidjson、google test、ACE+TAO的OpenDDS-3.29.1源码包,适用于离线编译

包含rapidjson、google test、ACE+TAO的OpenDDS-3.29.1源码包,适用于离线编译

2024-09-19

png动画制作工具汉化版

这是一个firefox扩展,由firefox官方开发,用来制作png动画的,比较好用。

2009-03-20

已转换为jpg格式的mnist数据集

6万张训练图,1万张测试图,没有单独的标签文件,需要从文件名解析。

2019-01-28

WinDbg6.11.1.402汉化版

  微软开发的Windows下的调试器,可以调试应用程序,.Net framwork程序,驱动,操作系统……,开发者,破解者必备利器。   注意:这是x86版。

2009-02-21

hadoop-eclipse-plugin-2.7.2.jar

eclipse的hadoop插件,在64位平台下编译的,是否能用于32位平台不清楚。

2016-08-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除