Windows下make安装与Makefile实战指南:从报错到跑通
很多Windows用户在第一次跑开源项目、编译别人的C/C代码时都会被同一个报错砸懵打开终端敲了make结果不是“无法将‘make’项识别为 cmdlet、函数”就是“make: *** 没有指明目标并且找不到makefile”。这个make工具在Linux和macOS上几乎是标配到了Windows上却成了人人喊打的稀罕物。这篇文章不是教科书是我自己折腾过、也给同事救过场的实操总结目标是让一个从没碰过make的Windows用户花十分钟搞清楚它是什么、怎么装、装完怎么用、报错怎么排查。我会从实际场景出发把安装方式、环境变量、常见坑全部过一遍最后用一个最简单的Makefile案例跑通全流程。无论你只是路过想跑某个开源库还是要系统做C/C开发这篇都够用。1. 为什么Windows用户会突然需要make——先从实际场景说起1.1 并不是所有项目都给了现成的exeWindows用户平时习惯了双击安装包、解压即用很少意识到很多开源软件根本不发布Windows二进制文件。项目主页上写着“从源码编译”README里第一句就是make make install这时候没有make的Windows用户就卡在了起跑线上。我最初遇到make是在折腾一个老的C语言工具下载下来发现目录里全是.c、.h和几个文件唯一能用的命令就是make。我那时候连make是什么都不知道只知道Linux服务器上快速构建要敲这个。后来才明白make是自动化构建工具它读取一个叫Makefile的文件按照文件里定义的规则把源码编译、链接成最终可执行文件。你可以理解成它是一个“项目管家”它知道哪些文件需要编译、以什么顺序编译、哪些文件改了只需要重新编译一部分而不是每次全量重来。1.2 Windows上的make不是“默认公民”Windows本身不内置make。微软主推的构建工具是MSBuildVisual Studio项目里那套.sln/.vcxproj体系跟Unix世界里的Makefile是两个物种。Cygwin、MSYS2、MinGW这套东西虽然把Unix工具链搬到了Windows但默认也都没随系统安装。所以Windows上安装make这件事本质上是回答一个问题你要在哪个“壳”里跑make。这里的“壳”决定了你装的make能编译什么类型的代码、用哪个编译器、能调用哪些Unix命令。这也是很多人装了make还是一堆报错的根本原因——你没有先想清楚运行环境。2. 安装make前必须分清楚的运行环境2.1 终端、解释器、工具链这三者的关系很多教程把“在Windows安装make”写成一个命令实际上不够严谨。我见过有人用CMD里的make报错就去装了个MSYS2结果回到CMD还是找不到make气得直骂教程是骗人的。原因是这样的终端CMD、PowerShell、Windows Terminal这一切只是“外壳”用来敲命令。Unix兼容层Git Bash、MSYS2的Mintty、Cygwin终端这些提供了一些Linux风格的命令和环境。make本身它是个独立的可执行文件要么放在某个目录里要么作为某个套件的一部分。装make的时候你实际要做的是把一个make.exe文件放进系统PATH里或者使用一个带make.exe的“环境目录”并在其中运行。如果你只在CMD里敲make而PATH里没有make.exe那不管MSYS2装了什么跟CMD都没关系。换句话说一个安装的make只对它所在的那个环境有效。在MinGW64的shell里能用的make不代表PowerShell里就能用反过来也一样。理解了这一点后面所有排错都顺了。2.2 为什么要区分“原生Windows”和“模拟Unix环境”如果make只是用来编译很小巧、依赖很少的C程序那一个原生make.exe加一个MinGW编译器就够了。但如果项目里用了unistd.h、fork()这类Unix系统调用那原生Windows环境基本没法直接编译需要MSYS2或WSL这种模拟层来铺路。这个道理就像你在Windows上运行.sh脚本要么用Git Bash要么用Cygwin要么装个WSL否则没法直接跑。make项目也一样Makefile里写的各种命令依赖shell而Windows的CMD不是标准的POSIX shell很多文档里gcc、rm、cp这些命令在CMD里根本不存在。所以你在选安装方式之前别急着装先问一个问题这个项目的Makefile是给谁看的如果项目看起来很“Unix风”我建议直接上WSL省心很多。如果只是个普通的C/C练习项目或者Windows友好项目那原生make就够。3. 五种主流安装方式详解与对比3.1 方式一直接拿下独立的make.exe —— 最简单粗暴如果你只需要得到一个能在CMD或PowerShell里敲得响的make命令最快的方法就是下载一个现成的make.exe放到某个目录然后把目录加进PATH。最常被拿来使用的独立make是GnuWin32版。这套工具把大量GNU小工具编译成了Windows原生程序包括make和coreutils扫一眼就能用。安装步骤是去GnuWin32的发布页下载make的安装包运行安装程序比如安装在C:\Program Files (x86)\GnuWin32安装程序通常会提示是否把可执行目录加入PATH勾上即可重开一个终端输入make --version验证。这条路的好处是零依赖、装完就走缺点是GnuWin32的make版本比较老停在3.81左右。而现代Makefile如果用了$(OBJDIR)模式匹配、--output-sync这些4.0特性老版本make会直接报错。我自己遇到过项目里用了define ... endef多行变量3.81处理得很好但用了一些自动变量后就原地爆炸最后换了高版本才过。如果项目要求make 4.x建议别用GnuWin32直接看下一种方式。3.2 方式二MSYS2装make —— 兼顾命令行体验和现代版本MSYS2现在是Windows上做Unix工具链的首选之一。它把自己定位成“Windows上的一个软件分发平台”用pacman包管理器安装各种东西包括make、gcc、mingw-w64工具链、shell等。装完之后你既可以在MSYS2自带的shell里工作也可以把它的usr\bin目录加入系统PATH让CMD或PowerShell里能用make。安装MSYS2的步骤不复杂从MSYS2官网下载安装器一路Next默认装到C:\msys64在开始菜单打开“MSYS2 MSYS”终端先更新核心pacman -Syu提示关闭窗口时关掉重开再执行一次pacman -Syu确保更新完整安装makepacman -S make验证make --version。这里有个细节很多教程没说清楚MSYS2里有好几种make。pacman -S make装的是GNU make路径在C:\msys64\usr\bin\make.exe。另外还有个mingw-w64-x86_64-make包装出来的可执行文件叫mingw32-make.exe路径在C:\msys64\mingw64\bin。它们的区别是/usr/bin/make编译时默认会找MSYS运行时环境msys-2.0.dll而mingw32-make是纯原生Windows程序不依赖MSYS的DLL。绝大多数场景直接用make就行但如果你要去Visual Studio或者纯Windows环境里跑构建可能得用mingw32-make。别记混很多人报了“找不到make”其实就是装反了包或者路径没对上。MSYS2的make版本是4.4.x比GnuWin32新得多而且它同时安装了gcc、g、gdb、pkg-config这些开发标配。所以如果你有几个C/C项目要折腾MSYS2算是综合体验最好的方案。3.3 方式三用包管理器安装 —— winget、Chocolatey、Scoop如果你已经装了Chocolatey、winget或Scoop这类的Windows包管理器那安装make就是一行的活。Chocolateychoco install make -y装完后make在C:\ProgramData\chocolatey\bin\make.exe由于这个目录默认就在PATH里直接开新终端就能用。Scoopscoop install makeScoop的好处是把工具装到用户目录通常是C:\Users\你的名字\scoop\apps\make\current不需要管理员权限不会污染系统盘深处。wingetwinget search make winget install --id GnuWin32.Makewinget搜索的结果里可能有好几个make选GnuWin32.Make就行。命令行安装时如果有多个版本源可能弹出交互选项加个--silent可以少点几次确认。这条路线说到底是“让包管理器去下载和配置3.1里的make”好处是版本管理统一、卸载干净以后更新也方便。前提是你电脑上已经有一个包管理器如果都没有至少先装个Scoop或Chocolatey。我个人对新手比较推荐Scoop因为它不用管理员权限、命令直观、以后装ffmpeg、git、rust这些也是顺手的事。3.4 方式四MinGW-w64工具链自带 —— 适合只想编译Windows原生程序MinGW-w64是个跨平台C/C编译工具链产物是原生的Windows可执行文件。它一般会捆绑一个make有的叫mingw32-make.exe有的直接叫make.exe。如果你在某个软件里“安装MinGW”时勾选过“Add to PATH”那里面通常也带了make。比较典型的是通过MSYS2装MinGW-w64工具链pacman -S mingw-w64-x86_64-toolchain这个包组会带上一整套编译器、链接器和mingw32-make.exe。如果你用的其他套件名字不同注意别把它和GNU make混了。mingw32-make本质上就是GNU make在MinGW环境里的一个变体它跟make的主要区别是会把CCcc等默认变量改写成MinGW的编译器名称另外部分行为会跟MSYS环境有差异。在Visual Studio开发者命令行里如果你用了nmake那是微软自己的make变体语法和GNU make不同不是一回事。别看见“make”就以为是同一个命令很多人的错误就是把Linux Makefile直接甩给nmake然后被一堆“syntax error”砸脸。3.5 方式五WSL里装make —— 最接近Linux服务器的体验如果项目代码是为Linux环境写的或者你在Linux服务器上跑过、想在Windows本地搞一套一比一的编译环境我强烈建议用WSL而不是在Windows上死磕原生make。WSL2在你的电脑上跑一个轻量级Linux内核然后你在Windows控制台里回车就能进Linux终端之后再sudo apt update sudo apt install make gcc build-essentialbuild-essential里就带了make、gcc、g这些必须品。之后你在WSL的shell里敲make跟在Linux服务器上一样顺滑连编译出来的行为都一模一样。它的劣势是一次性占用略大要装WSL组件、下载根文件系统而且如果只为了跑一个Makefile可能有点“高射炮打蚊子”。另外注意文件系统跨一个个边界如果Windows项目文件夹在/mnt/c/...下面make在WSL里读取和编译会有轻微性能损失更微妙的是有些工具在WSL的Linux文件系统$HOME里工作正常放到/mnt/c下就出现权限问题。所以选这个方案时最好把项目放在WSL内部目录比如~/project而不是C盘下的某个Windows目录。3.6 各方式对比表安装方式适合场景make版本依赖学习成本GnuWin32独立exe只需一个make命令3.81旧无极低MSYS2需要现代makeUnix工具链4.4.x需要装MSYS2中等Chocolatey/Scoop/winget已有包管理器的一键需求取决于源需要包管理器极低MinGW-w64套件编译Windows原生C/C4.2编译器套件中低WSL项目是Linux风格、需要完整Linux环境Ubuntu自带版本WSL组件中等略高如果你问我个人的偏好普通用户在Windows上跑make我会说别贪复杂先用Scoop装一个make够应付80%需求。等发现项目需要各种Linux依赖时再切到MSYS2或WSL也不迟。4. 环境变量与PATH配置安装的最后一步4.1 怎么确认make.exe被装到了哪里安装make之后第一步不是马上写Makefile而是先确认命令已经“被系统看见”。在终端里敲where make这个命令会列出所有路径里跟make匹配的可执行文件输出类似C:\Users\你的名字\scoop\shims\make.exe C:\ProgramData\chocolatey\bin\make.exe同时你会看到所有位置。如果输出什么都没显示说明make没加入PATH或者你安装的时候某个环节没选对。另一个快速验证是make --version如果能显示GNU Make的版本号那说明当前环境的命令找得到make万事大吉。如果报的不是版本号而是“找不到命令/无法识别”才进入下一节的排查流程。顺带提醒一句改完PATH后一定要重开一个终端窗口。不是刷新一下就行的因为每个终端在启动时读取一次PATH。PowerShell里refreshenv偶尔能刷新但不是每次都灵最保险的就是关掉重开。4.2 修改PATH的正确姿势与常见误区假如where make没找到命令你需要把make.exe所在目录加进PATH。Windows 11和Windows 10的操作方法类似按Win键搜索“编辑账户的环境变量”回车在“用户变量”区域找Path双击点“新建”把make.exe所在的目录完整填进去确定保存然后重开终端。例如MSYS2的make在C:\msys64\usr\bin你要加的就是这个目录而不是C:\msys64。很多人搞混把整个安装目录加了进去结果命令还是找不到因为这个目录里面放的其实是运行库和shell脚本可执行文件都在bin下。另一个常见误区是加错了PATH的绝对路径。如果你在64位系统上装的是32位GnuWin32默认路径会带(x86)如果你拼错了大小写、或路径里夹了空格没引起来终端也会那边要我查。最稳妥的办法是找到make.exe看文件属性里的路径去复制不要手打。注意改PATH并不总是需要管理员权限。用户变量只对当前用户生效系统变量才需要管理员。一般装make改用户变量就够了用系统变量反而容易被某些软件卸载时清理掉。还有一个细节是PATH里各条路径的顺序问题。where make会按PATH顺序从上到下搜索如果前面某条路径里也有个make可能你实际使用的是不是预期那个版本。尤其是装过多个工具链的人今天这里的make跑旧版明天那里的make又是新版很容易出“make版本不对”的错觉。所以装多套make之后推荐主动删掉不用的或者只保留一条路径里的make。5. 常见报错排查全实录5.1 “make : 无法将‘make’项识别为 cmdlet、函数”这是PowerShell下最典型的报错。整句一般是make : 无法将“make”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 请检查名称的拼写如果该名称有路径请确保路径正确然后再试一次。看到这个报错说明PowerShell拿着PATH去全局找、照着当前位置找都没发现make.exe。排查步骤直接按这个顺序来where make如果没结果说明没装或没加PATH查看PATH是否包含make.exe路径$env:Path在PowerShell里查看在文件系统里确认make.exe真实存在重开终端再试make --version。还有一种情况比较隐蔽你已经加了MSYS2的路径但因为MSYS2安装到了C:\msys64而你把路径写成了C:\msys64\bin其实MSYS2的make在C:\msys64\usr\bin。这就是典型的目录层级不对导致的“看起来装了却找不到”。在CMD下对应的报错是“‘make’ 不是内部或外部命令也不是可运行的程序或批处理文件”排查逻辑与上面完全一致。5.2 “make: *** 没有指明目标并且找不到makefile”这一句说明make已经能跑起来问题出在你给的目录里没有Makefile。这个报错可以拆成两层你确实没在正确的目录下运行make。比如你下载了一个开源项目忘了解压直接在下载目录敲make当然找不到Makefile。解决办法是先cd进项目目录。项目用的是非默认名称。GNU make默认找的名字按顺序是GNUmakefile、makefile、Makefile。如果项目里只有Makefile.am或makefile.linux这种make不会自动读取你需要指定名称make -f makefile.linux。还有一个情况是我遇到的蛮多的项目目录在Windows共享盘或网络盘上make找不到文件其实是因为项目压根没解压完整或者解压工具把一堆文件解压到了子文件夹。可以先ls/dir看一眼当前目录里有没有Makefile再决定。5.3 关掉终端重开还是不行我被人问过很多次“我已经加了PATH也重开了终端还是不行。”这通常是两种情况。第一种改的是用户环境变量但当前使用的是一个以管理员身份打开的旧终端。管理员终端或Visual Studio开发人员终端可能会继承系统级PATH但你改的用户变量在那一次进程里不一定重新加载。关掉所有终端重新开一个新的试试。第二种你把make.exe放进了存在权限问题的目录比如某个C盘根目录自定义文件夹但没有读取执行权限。可以试试以管理员方式打开终端看是否能运行如果能就说明当前用户的权限有问题不如把make换到用户目录下用。5.4 在Git Bash里有make在PowerShell里没有好多项目教程建议“在Git Bash里运行make”结果你发现在Git Bash里make能用跑到PowerShell就废了。原因很简单Git for Windows通常自带了一套轻量的MSYS环境它把C:\Program Files\Git\usr\bin加入了Git Bash自己的PATH。但你操作的是系统PATHGit Bash里的这个路径不一定暴露给了PowerShell。一个可行办法是把C:\Program Files\Git\usr\bin加进系统PATH这样PowerShell里也能使用Git自带的工具包括make。但我得说一下Git for Windows自带的东西并不全它通常不包含gcc所以这里面的make只能用来做项目管理/调用外部命令不能单独完成C/C编译。如果你在Git Bash里能编译、在PowerShell里不行另一个简单粗暴的解法是别切换终端一直在Git Bash里干活。它本质上就是个“MSYS2尝鲜版”日常敲Unix命令很顺手。6. 实战验证写一个Makefile跑通编译流程6.1 一个最基本的Makefile示例装完make不跑一次项目总觉得心里没底。我拿一个最简单的C程序来演示说明make到底在干嘛。先在某个文件夹先建hello.c#include stdio.h int main(void) { printf(Hello, make!\n); return 0; }然后在同目录建Makefile内容如下CC gcc CFLAGS -Wall -Wextra -O2 hello: hello.c $(CC) $(CFLAGS) -o hello hello.c clean: rm -f hello注意Makefile里真正干活的那一行开头的必须是Tab键不是四个空格。这是新手踩得最多的一坑用编辑器默认把Tab替换成空格之后make报“缺少分隔符”怎么都过不去。如果你用的编辑器有“插入空格代替Tab”选项记得关掉。make命令流程是这样的没指定目标时make使用Makefile里第一个目标这里是hello发现hello依赖hello.c检查hello.c是否存在、是否需要重建hello执行gcc -Wall -Wextra -O2 -o hello hello.c生成hello.exeWindows上扩展名是exe。然后./hello就能看到输出。6.2 用make做的典型操作日常开发里make的主要价值不是编译单文件而是增量编译。你在Makefile里多写几个目标管理多个文件make只重编改动过的部分。我会建议至少掌握这几个命令make默认构建make clean清理生成物比如hello.exe和目标文件make -n只打印将要执行的命令不真执行用来检查Makefile逻辑make -j4并行构建多核机器快很多。我经常用make -n做调试因为它能把make心里的执行计划暴露出来。比如你怀疑某个变量没设对先跑make -n看看它要执行的命令是什么样子能省很多瞎猜时间。6.3 编译过程中常见的Windows版额外报错当你从Linux项目里拿了个Makefile到Windows经常会在运行阶段遇到和make无关的新问题。最常见的一个是rm不是Windows命令。Makefile里写rm -f hello在CMD/PowerShell下调make时会报“rm不是内部或外部命令”但它在Git Bash/MSYS2里正常。这类项目往往还带着gcc、ar、ld这些命令如果你的PATH里没有这些工具make就算安装成功了构建也会在找不到编译器时崩掉。所以安装make之后下一步至少要确认gcc -v能不能跑通。这在Windows上通常意味着你得先装个MinGW-w64工具链或者干脆转用MSYS2整套方案。我已经预见到很多人会栽在这里所以建议是不要孤立地只看make这个工具你需要的其实是一整套构建环境。make只是其中相当不起眼的一员真正的编译和链接工作在背后的编译器手里。7. 我踩过的坑和给新手的建议7.1 老版本make遇到现代语法就翻车我最早用GnuWin32的3.81版跑网络上一个项目的Makefile时遇到$(foreach ...)和$(wildcard ...)这种语法就正常但用到$(shell ...)里的长命令时就各种飘忽行为。后来把MSYS2里的make 4.4加进PATH同一个Makefile一次过连报错信息都友好得多。如果你已经装了make但调复杂项目依旧报“error: recipe commences before first target”别先怀疑Makefile先检查make的版本是否太老。7.2 专为Linux设计的Makefile不适合硬跑通读Makefile很关键如果看到unistd.h、pthread、dlopen、-lX11这种Linux专属库参数大概率没办法直接在原生Windows下编译。硬装完make、再硬编结局通常是几百行编译错误。遇到这种情况我直接转到WSL里编译或者到项目提issue看有没有Windows支持。这不是make的锅是底层依赖不同。安装make只能解决make不存在的问题解决不了平台不兼容的问题。7.3 我的最终建议从零开始、想在Windows上获得一套“能用、不折腾”的构建环境我个人建议的顺序是先把MSYS2装上用pacman -Syu更新再pacman -S make gcc pkg-config一次把make和编译器配齐把C:\msys64\usr\bin和C:\msys64\mingw64\bin加入PATH这样你在Windows Terminal、VS Code、PowerShell里都能用到完整工具链如果是明确为Linux设计的大型项目直接装WSLsudo apt install build-essential后一切按Linux玩法来。实际工作中我冰箱里最常用的就是MSYS2这个方案。它既保留了Windows原生文件系统的方便又能得到接近Linux的命令行体验。make这个问题说到底不是Windows上“没有”而是你要选定一套生态来接收它。选MSYS2基本上等于选了一条平坦大路。最后分享一个小技巧把make的多余层层依赖留给Makefile去思考你只需要知道make会在哪里失败。每次失败都是线索顺着报错往上看八成是环境没配全而不是你自己写的代码有问题。安装工具最怕的是把“缺了某个命令”当成“自己不会用”多敲几个where、gcc -v很快就能定位到问题。

相关新闻

1米高精度开放空间TIF数据集:ArcMap栅格裁剪与掩膜提取实战

1米高精度开放空间TIF数据集:ArcMap栅格裁剪与掩膜提取实战

前几天群里有人转发了"全球首个1米高精度特大城市开放空间数据集(Tif)"的消息,文件名就带一个TIF后缀,很多朋友下载解压后对着一个栅格图层发呆,不知道这个数据到底能干什么。我做GIS数据处理这些年,对"高精度&quo…

2026/10/9 7:03:48 阅读更多 →
船舶信息管理系统实战:Django+Vue前后端分离开发与联调要点

船舶信息管理系统实战:Django+Vue前后端分离开发与联调要点

接到“船舶信息管理系统”这个需求的时候,我脑子里第一反应不是“又要写CRUD了”,而是“这套系统到底该怎么搭才不像个玩具”。尤其是标题里同时出现了python、vue、django、flask、pycharm这几个关键词,说明提问者大概率是个刚接触全栈开发的…

2026/10/9 7:03:48 阅读更多 →
Java Web老项目实战:HR系统源码部署与底层链路解析

Java Web老项目实战:HR系统源码部署与底层链路解析

简介:这是一套完整的Java企业级人力资源管理系统源码,面向Java初学者及中级开发者,聚焦Web应用开发实战,覆盖员工管理、部门架构、考勤薪酬、权限控制等核心HR业务场景。资源包含1234个文件,主体为405个htm/5个html页面…

2026/10/9 7:03:48 阅读更多 →

最新新闻

编写恰到好处的产品退市(EOL)通知:Product-Manager-Skills 的 eol-message 技能实战指南

编写恰到好处的产品退市(EOL)通知:Product-Manager-Skills 的 eol-message 技能实战指南

AI 技能AI 插件 【免费下载链接】Product-Manager-Skills Product Management skills framework built on battle-tested methods for Claude Code, Cowork, Codex, and AI agents. 项目地址: https://gitcode.com/gh_mirrors/pr/Product-Manager-Skills 点击查看 免…

2026/10/9 7:31:10 阅读更多 →
用面试转录预测 Culture Index 特质:interpreting-culture-index 的 predict-from-interview 工作流实战指南

用面试转录预测 Culture Index 特质:interpreting-culture-index 的 predict-from-interview 工作流实战指南

AI 技能AI 插件应用安全网络安全AI 评测 【免费下载链接】skills Trail of Bits Claude Code skills for security research, vulnerability detection, and audit workflows 项目地址: https://gitcode.com/gh_mirrors/skills8/skills 点击查看 免费下载 本文是 T…

2026/10/9 7:31:10 阅读更多 →
遗传算法求解电力系统经济调度:爬坡约束与网损的Matlab实现

遗传算法求解电力系统经济调度:爬坡约束与网损的Matlab实现

搞电力系统优化的同行应该都有同感:经济调度(Economic Dispatch)这个题目看起来不难——把负荷分给几台机组让总成本最低,但一旦把爬坡约束、网损这些工程细节塞进去,"简单"就变成了"复杂"。尤其是…

2026/10/9 7:31:10 阅读更多 →
Arcane 贡献指南:搭建 Go + SvelteKit 双端热重载开发环境并提交高质量 PR

Arcane 贡献指南:搭建 Go + SvelteKit 双端热重载开发环境并提交高质量 PR

云原生运维容器运行时 【免费下载链接】arcane Modern Docker Management, Designed for Everyone 项目地址: https://gitcode.com/gh_mirrors/arcane2/arcane 点击查看 免费下载 Arcane 是一个面向所有人的现代化 Docker 管理平台,采用 Go 后端、Svelt…

2026/10/9 7:31:10 阅读更多 →
wp-calypso 的 createSelector 详解:用 @automattic/state-utils 构建带缓存失效机制的 Redux 记忆化选择器

wp-calypso 的 createSelector 详解:用 @automattic/state-utils 构建带缓存失效机制的 Redux 记忆化选择器

前端CMS 【免费下载链接】wp-calypso The JavaScript and API powered WordPress.com 项目地址: https://gitcode.com/gh_mirrors/wp/wp-calypso 点击查看 免费下载 wp-calypso(WordPress.com 的前端应用)的 Redux 状态树刻意保持精简&#…

2026/10/9 7:31:10 阅读更多 →
Playnite 主题改 3 处 XAML 就能加动画

Playnite 主题改 3 处 XAML 就能加动画

Playnite 主题改 3 处 XAML 就能加动画 【免费下载链接】Playnite Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games. 项目地址: https://gitcode.com/GitHub_T…

2026/10/9 7:30:09 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →