VS2019下编译FLTK 1.4.4 64位静态库完整指南

如果有人问我Windows下最省心的C++界面库是什么,我的答案一直是FLTK。不是因为它功能最全,而是因为它是少数能把二进制体积控制在几百KB、链接完不带一堆运行库依赖的轻量级选择。最近我用VS2019把一个内部工具做成64位程序,决定把FLTK-1.4.4从源码重新编一遍,整个过程比预期顺,但还是有几个地方值得记下来。这篇文章就是我从下载源码到把库接进自己项目的完整记录和避坑总结,给同样想在VS2019下用FLTK 1.4.4的人一条能直接走通的路。

1. 为什么非要从源码编译FLTK 1.4.4

1.1 轻量级界面库的价值与选择逻辑

先说结论:如果你做的是那种功能单一、追求启动速度和分身体积的工具类小程序,FLTK比Qt和wxWidgets合适得多。Qt的功能当然强,但发行时那几十MB的运行库是绕不开的;wxWidgets的封装风格偏重量级,学起来也要花不少时间。FLTK的定位就是小而快,核心库编译出来后通常就一两百KB,静态链接之后整个exe基本能控制在1MB上下,这在Windows下的C++项目里是很少见的。

FLTK 1.4.x这个分支相比老版本做了不少实质改进,最直观的是对Unicode和文件名的支持比1.3时代好了很多,在VS2019下编译和使用时,中文路径、中文窗口标题、文件对话框的乱码问题大幅减少。另一个变化是CMake构建体系成了主力,不再依赖以前那套容易在各种编译器版本之间出问题的Makefile和IDE工程文件。所以这次选1.4.4而不是还在用1.3.x的老方案,完全没有历史包袱。

1.2 源码编译与预编译包的真实差异

FLTK官方站点其实提供Windows预编译包,为什么还要劳烦自己折腾一遍?因为预编译包有几个实际痛点:第一,位数可能不匹配,官方包虽然也有64位,但未必对应你本机的MSVC工具集版本;第二,默认组件不一定满足你的需要,比如你要把FLUID和示例程序关掉省空间,预编译包做不到;第三,也是最容易出事的,就是预编译包的运行库配置和你的项目不一致,链接阶段会出现LNK4098、LNK2038这类毛病,到时候你还是得回头重新编。

源码编译最能解决问题的地方是可控性。我可以通过CMake选项自由裁剪模块,把不需要的OpenGL支持、示例程序全部关掉;把所有库统一成64位静态库;还可以把安装目录放在自己指定的路径,不污染系统盘。工程里其他人拿到这套编译记录,换一台机器也能复现出一模一样的库,这才是正经的工程做法。

2. 编译前置环境:VS2019组件与CMake版本的真实要求

2.1 VS2019需要装哪些东西

VS2019的安装界面大家都熟悉,真正卡的坑往往不在功能库而在工作负载。编译FLTK只需要C++工具链,安装时勾选“使用C++的桌面开发”就够了。这个工作负载会带下来MSVC v142编译器和Windows SDK,OpenGL相关的头文件也在里面,不需要额外装什么。

安装完成后我建议确认一下几个组件的存在:MSVC v142生成工具、“Windows 10 SDK”(具体小版本无所谓,系统默认拉下来的就行)。FLTK本身没有特别新的语言标准要求,C++11就满足,所以工具集用默认的v142即可。之前见过有人装完VS只装了“通用Windows平台开发”,结果编译时找不到windows.h,那种情况属于工作负载选错了。

2.2 CMake版本怎么选

这是容易被忽略的一个点。VS2019自带了一部分CMake组件,但版本往往偏旧且升级麻烦,而FLTK 1.4.x的CMakeLists对最低版本有明确要求。我的习惯是:不用VS自带的CMake,直接去CMake官网装一个单独的版本,装完顺手把安装目录加入系统PATH。

装好之后在命令行里敲一下:

cmake --version

如果显示的大版本低于3.16,建议直接升级到3.20以上再动工。我用的是3.24左右的版本,整个Configure过程没有出现“CMakeLists版本要求不满足”之类的提示。顺便说一句,FLTK的管理脚本对CMake版本其实有点挑剔,版本太老会报一些看不懂的语法错误,新版基本就消停了。

2.3 构建目录的设计

很多人拿到源码包后直接解压,然后打开CMake把源码目录和生成目录都指到同一个文件夹,这是最危险的操作。FLTK官方推荐源码目录与生成目录分离,我也是这么做的,具体结构大概是:

D:\lib\fltk-1.4.4\ 源码包解压目录 D:\lib\fltk-1.4.4-build\ CMake生成的中间目录 D:\lib\fltk-1.4.4-install\ 最终安装目录

生成目录分离的好处是:源码解压错了想重新来,删掉build目录就行,源码还是干净的;将来调试FLTK内部代码时也不会被中间文件干扰。源码路径和生成路径我都建议放在较短的纯英文目录下,不要带空格和中文,MSVC配合CMake在这种路径下偶尔会出现莫名其妙的“Cannot open include file”类错误,与其排查半天不如一开始就从源头避开。

3. CMake配置界面逐项拆解

3.1 从GUI到VS工程文件

先别急着打开VS,配置阶段用CMake GUI或者命令行都行。我这次用的是命令行,因为可复现性更好,命令写下来就能知道到底做了哪些选择:

cmake -S D:\lib\fltk-1.4.4 -B D:\lib\fltk-1.4.4-build -G "Visual Studio 16 2019" -A x64

-G指定生成器是VS2019(CMake内部叫“Visual Studio 16 2019”),-A x64是这次最关键的一步:保证生成的是64位工程文件。很多人在这一步忽略平台参数,默认生成的是Win32工程,编出来的库是32位,链接时各种“无法解析的外部符号”就都来了。

如果你想用CMake GUI操作,逻辑是一样的:源码目录填D:/lib/fltk-1.4.4,生成目录填D:/lib/fltk-1.4.4-build,点击Configure后在弹出窗里选“Visual Studio 16 2019”,再在“Optional platform for generator”里选x64。命令行虽然看起来硬核,实际上比GUI更省事,还能把参数存成脚本下次直接跑。

3.2 Configure之后选项怎么选

第一次点击Configure后会进入选项列表状态,这时候不要急着Generate。先展开各个分组,把几个关键项过一遍。我整理了一个常用的配置参考表:

CMake选项推荐值作用与说明
CMAKE_INSTALL_PREFIXD:/lib/fltk-1.4.4-install决定最终头文件、库、工具的安装路径
FLTK_BUILD_TESTOFF(默认)是否编译test目录下的测试程序,排错时需要才开
FLTK_BUILD_EXAMPLESOFF(默认)是否编译examples里的示例工程,自己用建议关闭
FLTK_BUILD_FLUIDON(默认)是否编译FLUID界面设计器,强烈建议保留
FLTK_USE_GLON(默认)是否启用OpenGL模块,需要3D或图像缩放时保留
FLTK_USE_SYSTEM_LIBJPEG/PNG/ZLIB默认即可是否链接系统图片压缩库,保持默认不折腾

字段里比较容易被忽略的是FLTK_USE_GL。这个选项默认是开的,如果你只是做普通窗口和按钮,理论上可以关掉,但FLTK的一部分图像处理功能会牵涉到它,关了之后某些API会不可用。所以除非你非常确定不需要,否则保持默认就好。

还有一个关于共享库的选项,不同版本名称略不同,1.4里通常能看到BUILD_SHARED_LIBS,默认不勾选,也就是构建静态库,这正是我想要的。静态库的好处是最终exe不依赖额外的FLTK DLL,拷给别人直接就能跑,符合轻量工具软件的发行习惯。

3.3 Configure阶段的红色警告怎么处理

第一次Configure并不总是顺利的,常见的有两种提示。第一种是系统找不到某些依赖库,比如没能识别的OpenGL头文件路径;第二种是CMake版本过低的报错。前者在VS2019环境中一般不多见,如果你前面装了“使用C++的桌面开发”,自带Windows SDK里就有GL/gl.h,不用担心;但如果提示找不到,去“控制面板-程序-更改Visual Studio安装”里补上Windows SDK组件即可。后者直接升级CMake版本就好。

Configure完成后别急着Generate,先把CMAKE_INSTALL_PREFIX指定到我们的安装目录。如果不改,默认值是C:/Program Files/FLTK,后面执行INSTALL时会因为没有管理员权限而失败。改完再点Generate,此时会生成FLTK.sln解决方案文件,路径在build目录下。

4. 从ALL_BUILD到INSTALL:完整的编译生成流程

4.1 用VS2019开编

用VS2019打开D:/lib/fltk-1.4.4-build/FLTK.sln,你会看到解决方案里有一串项目,最前面是ALL_BUILD,后面还有INSTALL以及fltk、fluid、fltk_images等子项目。编译前有两个地方需要确认:

  • 解决方案配置选“Release”,不要用Debug,毕竟我们最终是要发行用的静态库;
  • 解决方案平台选“x64”,如果Configure那一步平台没选对,这里的平台列表里就不会出现x64。

右键ALL_BUILD,点“生成”。FLTK的编译非常快,我这台普通配置的机器一首歌的时间就完成了,整个输出窗口看不到error,顺利拿到Release目录下的编译产物。对比一下编译Qt那种动辄半小时的量级,FLTK确实轻。

4.2 INSTALL项目做什么

ALL_BUILD只是把所有目标编出来了,但库分布在各项目目录里,用起来很乱。接下来右键INSTALL项目并生成,这一步会把头文件、静态库、FLUID工具、fltk-config脚本统一拷贝到CMAKE_INSTALL_PREFIX指定的目录。安装完成后,你会看到这样的结构:

D:\lib\fltk-1.4.4-install\ ├── include\FL\ 头文件 ├── lib\ 静态库文件 ├── bin\ fluid.exe等工具 └── lib\cmake\FLTK\ CMake辅助模块

这里我提醒一句:INSTALL项目不会把Release和Debug的库混在一起,两套配置要分别生成。需要调试FLTK内部逻辑时,再切到Debug配置生成一次INSTALL即可。平常直接用Release库就够了。

4.3 验证64位产物

编译完了一定要验证产物是不是真的64位,这一步能用眼睛确认的绝不靠感觉。打开“Developer PowerShell for VS 2019”命令行,切到lib目录执行:

dumpbin /headers fltk.lib | findstr "machine"

输出里会出现machine (x64),说明这确实是64位库,也说明Configure时选的平台对了。如果是machine (x86)或者machine (ARM64),就要回去重新检查生成器参数。另一个验证方式是找一下test程序跑起来看看。

如果Configure阶段开了FLTK_BUILD_TEST,build目录下会有大量的测试exe,随便找一个双击就能跑出彩色窗口,看到窗口正常渲染,界面库本身就没有问题了。我建议至少跑一下test目录里的fastdemo,它对窗口刷新和文字渲染的覆盖比较全面。

4.4 fltk-config脚本的妙用

安装完目录里有一个bin/fltk-config脚本,运行fltk-config --cflags和fltk-config --libs会打印出编译和链接需要的全部参数。这个脚本在不同系统下的表现不完全一样,但在Windows上依然很有参考价值,至少能让你知道官方认为链接FLTK需要哪些库。

我实际用它做了一件事:把输出的参数整理到项目配置里,比自己对着文档一个库一个库猜准确得多。你如果用过pkg-config,会发现它俩思路很像,就是替你汇总“头文件在哪、库在哪、要链什么”。

5. 把库接进自己的VS2019项目:配置与第一段代码

5.1 工程属性配置

库编译好了,最终要接进自己的项目。新建一个空的C++控制台应用或者空项目,在项目属性里做三件事:

第一,C/C++ -> 常规 -> 附加包含目录,填D:/lib/fltk-1.4.4-install/include。

第二,链接器 -> 常规 -> 附加库目录,填D:/lib/fltk-1.4.4-install/lib。

第三,链接器 -> 输入 -> 附加依赖项,按需填入FLTK库和Windows系统库。我自己常用的清单如下:

库用途
fltk.libFLTK核心控件库
fltk_images.lib图像加载支持,没接图片可以省略
fltk_forms.lib旧版表单兼容,不用可以省略
fltk_gl.libOpenGL支持,用到了GL功能才需要
opengl32.lib / glu32.lib配合fltk_gl使用
comctl32.lib / shell32.lib / gdi32.lib / user32.lib / ole32.libWindows常规界面库
ws2_32.libFLTK网络相关功能需要

如果你的项目里出现“无法解析的外部符号”且符号和socket、WSA相关,那说明缺了ws2_32.lib。旧版FLTK的资料里写的是wsock32.lib,1.4.x与新版Windows SDK配合时用ws2_32更常见,真遇到符号缺失就把另一个也补上,多一个库不会出事。

5.2 运行库一致性:MD与MT的坑

这是链接FLTK时最典型的坑:MSVC项目的运行库设置必须和FLTK库编译时保持一致。FLTK默认通过CMake生成VS工程后,Release下的运行库是“多线程DLL(/MD)”。如果你自己的项目里把“代码生成 -> 运行库”改成了“多线程(/MT)”,链接时大概率会出现这样一条警告:

LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs

解决办法不是去和警告作斗争,而是把两边统一。最省事的是让项目跟随FLTK库用/MD;如果你铁了心要静态链接CRT,那就要在CMake里提前设置CMAKE_MSVC_RUNTIME_LIBRARY为MultiThreaded,然后重新编译一遍FLTK。这里没有两全其美的办法,必须在编译库的时候就想好,链接期再改就晚了。

5.3 一个最小例子跑通全链路

配置好属性后,写一段最基础的FLTK代码验证整条链路是否通畅:

#include <FL/Fl.H> #include <FL/Fl_Window.H> #include <FL/Fl_Button.H> int main() { Fl_Window win(320, 200, "FLTK 1.4 编译测试"); Fl_Button btn(120, 80, 80, 30, "Click"); win.end(); win.show(); return Fl::run(); }

编译、链接、运行,能弹出窗口且标题不乱码,说明整条工具链正式打通了。这个案例虽然简单,但覆盖了头文件搜索、库搜索、附加依赖项、运行库一致性四个最关键的环节,后续再复杂的功能都是在这个基础上叠加。

6. 编译FLTK最容易踩的坑

6.1 辛辛苦苦编完发现是32位

这是最高发的灾难,症状是64位程序链接时疯狂报“无法解析的外部符号”,而库本身明明编译成功了。原因就是Configure时没选x64,或者命令行里漏了-A x64,编出来的库是Win32的。所以我每次都建议在开始Configure之前就把参数固定下来,不要等编完了再回头查。

验证平台最直接的办法是在VS里看生成目录,Release目录下如果出现x64子文件夹,说明确实是64位;如果直接就是Release目录内放库文件,多半是Win32。

6.2 Debug与Release库混用

FLTK的CMake会生成独立的Debug和Release库目录,但项目属性里只能配一份附加库目录。如果你给Debug配置配的是Release路径,调起调试器时各种奇怪行为都会出现:变量看不到、断点不命中、甚至窗口一闪而过。根治办法是给工程配置两套属性,Debug配Debug目录,Release配Release目录,中间不要共用。

这个坑平时不起眼,却是后来排查问题最费时间的。没有足够理由,不要在Debug配置里链接Release库。

6.3 中文乱码与字符集选择

FLTK 1.4对Unicode的支持比老版本好很多,但前提是你的项目字符集设置正确。VS2019里把项目属性“常规 -> 字符集”选成“使用Unicode字符集”,这样main入口和窗口标题的宽字符处理才符合预期。如果仍然用多字节字符集,某些带中文的路径和文件名会在文件对话框里显示成乱码。

另外写代码时我习惯给main函数用int main()而不是void main,流量和报错信息会清晰很多,跟FLTK本身无关,但能少一些编译期的小麻烦。

6.4 安装路径权限问题和依赖DLL

上面提到过,不把CMAKE_INSTALL_PREFIX改掉的话,INSTALL会默认往Program Files里写,非管理员权限下直接失败。修改安装路径时注意,整条路径不能有中文,我见过个别环境在安装步骤因为中文路径出现乱码和找不到文件的怪问题。

还要留个心:如果你在CMake里打开了共享库选项,跑程序时就要把fltk相关的DLL放到exe同级目录,否则运行报“找不到FLTK.DLL”。这跟静态库是完全不同的发行模式,一旦选了DLL模式,后面的配置全都要跟着变。做轻量工具我个人始终推荐静态库,省心太多。

最后再说一句

如果你也准备在VS2019下编译FLTK 1.4.4,我最后给的建议是:把前面那条cmake命令连同参数存成一个bat或文本文件,下次换机器重新编译时直接执行,不要每次都在GUI里重新点一遍。我的经验是,FLTK这套库本身很稳,真正消耗时间的地方永远是环境不一致、配置记错、平台选错这些小问题。把这些固定下来,从源码到自己的程序跑通,一小时内完全够用。

相关新闻

NSGA2多目标优化MATLAB实现:从原理到代码全解析

NSGA2多目标优化MATLAB实现:从原理到代码全解析

简介&#xff1a;一份MATLAB环境下的NSGA-II算法实现资料包&#xff0c;围绕非支配排序遗传算法第二代展开&#xff0c;面向需要在科研或工程场景中处理多目标优化问题的开发者与学习者。资源共20个文件&#xff0c;以MATLAB的m脚本为主&#xff08;含初始化、非支配排序、锦标…

2026/10/20 2:52:44 阅读更多 →
前端大数据表格渲染卡顿?主线程调度、Worker 与虚拟滚动的优化实践

前端大数据表格渲染卡顿?主线程调度、Worker 与虚拟滚动的优化实践

1. 一次真实的卡顿现场&#xff1a;loading 转着转着就“冻住”了1.1 现象表现与复现路径先还原一下我当时遇到的问题。项目是一个典型的管理后台报表页&#xff0c;接口返回一张大列表&#xff0c;大概 8000 到 15000 行&#xff0c;每行有七八个字段&#xff0c;还要带状态标…

2026/10/20 2:52:44 阅读更多 →
C++ eVTOL仿真工程:六自由度动力学与控制分配实战

C++ eVTOL仿真工程:六自由度动力学与控制分配实战

简介&#xff1a;eVTOL_Simulation 是一份面向 C 学习者与仿真爱好者的轻量级项目源码&#xff0c;围绕电动垂直起降飞行器的调度场景展开。程序设定 5 家公司共 20 架飞机同时起飞&#xff0c;每架飞机拥有巡航速度、电池容量、充电时间、巡航能耗及每小时故障概率等参数&…

2026/10/20 2:52:44 阅读更多 →

最新新闻

技能管理实战:识别、组合与迁移,打造个人核心竞争力

技能管理实战:识别、组合与迁移,打造个人核心竞争力

有一次帮一位朋友梳理简历&#xff0c;他接到一个面试问题——“你最擅长的三项技能是什么”。他愣了半天&#xff0c;最后写的是"Excel、PPT、沟通"。写完连他自己都不信&#xff0c;觉得这跟没说一样。那一刻我突然意识到一件事&#xff1a;我们几乎每天都在提&quo…

2026/10/20 3:50:14 阅读更多 →
VirtualBox中CentOS 7双网卡配置:NAT与Host-Only实战指南

VirtualBox中CentOS 7双网卡配置:NAT与Host-Only实战指南

1. 为什么要在虚拟机里折腾双网卡把一台最小化安装的 CentOS 7 跑在 VirtualBox 里&#xff0c;是很多人搭本地实验环境、跑中间件、练运维命令的常规操作。但真到联网这一步&#xff0c;不少人会卡住&#xff1a;默认的 NAT 模式确实能让虚拟机访问外网&#xff0c;可宿主机想…

2026/10/20 3:50:14 阅读更多 →
Flutter中StatelessWidget与StatefulWidget的正确选择指南

Flutter中StatelessWidget与StatefulWidget的正确选择指南

1. 为什么这个问题每天都在被问&#xff0c;却总得不到真正管用的答案“Flutter里该用 StatelessWidget 还是 StatefulWidget&#xff1f;”——这问题我见过太多次&#xff1a;刚学完 Dart 基础的新人在群里发截图问“为什么我改个按钮颜色要写一堆 setState”&#xff0c;某高…

2026/10/20 3:50:14 阅读更多 →
GPT-5.5接口401报错排查:Organization头强制校验的修复指南

GPT-5.5接口401报错排查:Organization头强制校验的修复指南

1. 这个报错的真实面目&#xff1a;Key没坏&#xff0c;是鉴权策略升级了最近不少开发者都在反馈同一个问题&#xff1a;代码没动、Key没换&#xff0c;只是把模型版本从GPT-5.4升到GPT-5.5&#xff0c;结果接口直接从200变成401。最让人头疼的是&#xff0c;服务端返回的错误信…

2026/10/20 3:50:14 阅读更多 →
安全数据集清洗与特征工程实战:从原始告警到有效特征

安全数据集清洗与特征工程实战:从原始告警到有效特征

数据清洗与特征工程&#xff0c;一直是安全数据建模这条流水线上最不性感却最决定成败的两个环节。我见过太多团队拿到一份号称"真实"的网络安全数据集&#xff0c;调参调得热火朝天&#xff0c;最后发现模型指标漂亮得离谱&#xff0c;一上真实流量就崩&#xff1b;…

2026/10/20 3:50:14 阅读更多 →
Cursor 详细使用指南:TaoToken 统一 Key 接入与 AI 辅助编程调试实战

Cursor 详细使用指南:TaoToken 统一 Key 接入与 AI 辅助编程调试实战

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

2026/10/20 3:49:13 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 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/19 2:54:50 阅读更多 →
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/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →