libusb-1.0.26二进制包使用全指南:跨平台配置与底层通信排错
简介本资源为libusb-1.0.26版本的跨平台二进制文件合集面向嵌入式开发、USB设备驱动编写及底层通信调试的中高级开发者解决Windows/Linux/macOS多环境下快速集成USB底层通信能力的问题。压缩包共95个文件涵盖18个测试工具如listdevs、hotplugtest、xusb、6种平台的预编译库含VS2015-Win32/Win64、MinGW、Cygwin、macOS 10.7/11.6、配套头文件.h、动态链接库.dll/.dylib、静态库.a/.lib及pkg-config配置文件.pc结构清晰、开箱即用。资源大小6.27MB目录按操作系统与编译环境分层组织便于按需提取对应平台组件。目前已有100人学习下载读者可直接获取完整可用的libusb 1.0.26运行时与开发支持文件无需自行编译显著降低USB设备枚举、控制传输、热插拔响应等核心功能的接入门槛。1. libusb-1.0.26-binaries.rar 是什么它不是“即插即用”的驱动包而是嵌入式与工业设备通信的底层弹药库如果你在调试某款USB协议分析仪、自研的FPGA数据采集模块或接手一个遗留的Windows/Linux混合产线控制软件突然发现程序报错LIBUSB_ERROR_NOT_FOUND或libusb_init() returned -99而你手边只有一个名为libusb-1.0.26-binaries.rar的压缩包——别急着解压双击安装。这个文件不是驱动程序安装包也不是图形化工具它是 libusb 项目官方发布的、针对特定平台预编译的二进制运行时资源集合包含.dllWindows、.soLinux和.dylibmacOS动态链接库以及配套的头文件.h和导入库.lib/.a。它的核心价值在于让你的 C/C 程序绕过操作系统原生 USB 驱动栈直接与设备端点Endpoint交互实现零驱动driverless批量传输、控制请求、中断监听等硬核操作。适合硬件工程师写固件验证脚本、自动化测试工程师开发产线烧录工具、或嵌入式开发者在无 root 权限的工控机上读取 USB 温湿度传感器原始数据。它不解决“设备识别不了”的问题但能让你在设备已被系统识别为“未知设备”后依然完成底层通信——这才是它不可替代的真实场景。2. 解压后怎么用三步定位关键文件四类平台确认加载路径libusb-1.0.26-binaries.rar是一个经典的老版本二进制分发包发布于2022年结构清晰但需手动适配。解压后你会看到按平台划分的子目录MinGW,MS32,MS64,Linux,macOS。每个目录下包含libusb-1.0.dll或对应平台的动态库、libusb-1.0.libWindows 导入库、libusb.h头文件以及examples/目录下的参考代码。关键不是“装”而是“连”——让编译器找到头文件让链接器找到库文件让运行时能找到动态库。下面分平台说明最小可行路径。2.1 Windows 平台MS64 与 MS32 的选择逻辑与环境变量陷阱Windows 下最常踩坑的是架构错配。MS32目录提供 32 位 DLL 和 LIBMS64提供 64 位。你的程序是 x64 还是 Win32不能只看系统是 64 位就选 MS64——Visual Studio 新建项目默认是x64但很多旧产线软件仍强制编译为Win32。确认方法在 VS 中右键项目 → 属性 → 配置属性 → 常规 → 平台或查看生成的.exe属性 → 详细信息 → 产品类型显示“应用程序 (32-bit)”或“应用程序 (64-bit)”。# 在命令行中快速验证已编译 EXE 的位数无需安装额外工具 file your_app.exe | grep PE32\|PE32 # 输出含 PE32 → 64位含 PE32 → 32位提示若你用 MinGW-w64 编译不要用MS32/MS64目录而应切换到MinGW目录——它提供.a静态库和适配 MinGW 工具链的 DLL。MS64/libusb-1.0.dll无法被x86_64-w64-mingw32-gcc直接链接会报undefined reference to libusb_init。配置步骤以 VS2019 x64 程序为例头文件路径项目属性 → C/C → 常规 → 附加包含目录 → 添加path/to/libusb-1.0.26-binaries/MS64/include/libusb-1.0库文件路径链接器 → 常规 → 附加库目录 → 添加path/to/libusb-1.0.26-binaries/MS64/lib链接库名链接器 → 输入 → 附加依赖项 → 填libusb-1.0.lib运行时 DLL 放置将MS64/libusb-1.0.dll复制到你的.exe同级目录或放入C:\Windows\System32仅限 64 位系统或C:\Windows\SysWOW64仅限 32 位程序跑在 64 位系统上2.2 Linux 平台静态链接 vs 动态加载为什么LD_LIBRARY_PATH不是长久之计Linux 下libusb-1.0.so默认不在标准搜索路径/usr/lib,/lib中直接gcc main.c -lusb-1.0会报cannot find -lusb-1.0。常见做法是设置LD_LIBRARY_PATH但这只是临时方案不适合部署。生产环境推荐静态链接避免目标机器缺失库或版本冲突。# 步骤1确认 .so 文件位置假设解压到 /opt/libusb-1.0.26 ls /opt/libusb-1.0.26/Linux/libusb-1.0.so* # 步骤2编译时指定库路径和头文件路径动态链接 gcc -I/opt/libusb-1.0.26/Linux/include/libusb-1.0 \ -L/opt/libusb-1.0.26/Linux \ main.c -lusb-1.0 -o myapp # 步骤3运行前临时设置仅测试用 export LD_LIBRARY_PATH/opt/libusb-1.0.26/Linux:$LD_LIBRARY_PATH ./myapp # ✅ 生产推荐静态链接需 .a 文件libusb-1.0.26-binaries 包中通常不提供需自行编译源码但可临时用 pkg-config 检查系统是否已有 # 若系统已装 libusb-dev如 Ubuntu: sudo apt install libusb-1.0-0-dev则 gcc $(pkg-config --cflags libusb-1.0) main.c $(pkg-config --libs --static libusb-1.0) -o myapp_static参数说明--static参数让pkg-config返回静态链接所需的全部依赖包括-lpthread,-lrt等避免遗漏。-lusb-1.0单独使用只链接动态库静态链接必须用--static获取完整参数串。2.3 macOS 平台rpath机制与install_name_tool的强制重写macOS 对动态库路径要求最严格。libusb-1.0.dylib编译时默认install_name为/usr/local/lib/libusb-1.0.dylib但你的包里是相对路径。若不修正运行时报dyld: Library not loaded: /usr/local/lib/libusb-1.0.dylib。必须用install_name_tool重写运行时路径。# 假设你的 app 可执行文件叫 myapplibusb-1.0.dylib 在同级的 libs/ 目录下 # 步骤1编译时指定 rpath推荐一劳永逸 gcc -I/opt/libusb-1.0.26/macOS/include/libusb-1.0 \ -L/opt/libusb-1.0.26/macOS \ -Wl,-rpath,executable_path/libs \ main.c -lusb-1.0 -o myapp # 步骤2若已编译用 install_name_tool 修正补救 install_name_tool -change /usr/local/lib/libusb-1.0.dylib \ executable_path/libs/libusb-1.0.dylib \ myapp # 步骤3确认修正成功 otool -L myapp | grep libusb # 应输出executable_path/libs/libusb-1.0.dylib (not /usr/local/...)注意executable_path指向可执行文件所在目录loader_path指向调用者如 dylib 自身所在目录。此处用executable_path因为你的 app 直接链接 libusb。3. 初始化失败的五大血泪现场从libusb_init()返回 -99 到设备句柄为空即使头文件、库、DLL 全部正确配置libusb_init(ctx)仍可能返回-99LIBUSB_ERROR_OTHER或NULL上下文。这不是编译错误而是运行时环境问题。以下是我在某高校实验室调试 USB 信号发生器 Demo 时记录的真实翻车链路按发生频率排序3.1 现象libusb_init()返回 -99且dmesg显示usb 1-1: device descriptor read/64, error -71原因USB 设备物理层异常常见于劣质 USB 线缆、接触不良、或设备供电不足尤其 USB 2.0 高速设备接在 USB 3.0 插座上导致协商失败。libusb 底层调用内核ioctl(USBDEVFS_CONTROL)时因设备未响应而超时。解决换原装线缆将设备直连主板 USB 口避开 HUB用lsusb -v -s X:Y查看设备描述符是否可读若bLength字段为 0则物理层已失效。3.2 现象libusb_init()成功但libusb_get_device_list()返回 0 设备lsusb却能列出设备原因权限不足Linux/macOS或驱动被 Windows 系统占用Windows。Linux 下非 root 用户默认无权访问 USB 设备节点/dev/bus/usb/X/YWindows 下设备若被系统识别为“复合设备”如带 CDC ACM 的 STM32其接口可能被usbser.sys或winusb.sys占用libusb 无法接管。解决Linux创建 udev 规则/etc/udev/rules.d/99-libusb.rules内容SUBSYSTEMusb, MODE0664, GROUPplugdev然后sudo usermod -a -G plugdev $USERWindows用 Zadig 工具将目标设备接口强制替换为WinUSB驱动非libusb-win32后者已淘汰。3.3 现象libusb_open()成功但libusb_claim_interface()返回 -6LIBUSB_ERROR_BUSY原因设备接口正被其他进程占用。典型场景你用 Python 的pyusb脚本打开过设备未关闭或 Windows 设备管理器中“扫描检测硬件改动”后台进程锁定了接口。解决Linux 下lsof /dev/bus/usb/*/*查找占用进程并 killWindows 下在设备管理器中右键设备 → “卸载设备”勾选“删除此设备的驱动程序软件”再重新插拔。3.4 现象libusb_control_transfer()发送 SET_CONFIGURATION 请求后设备断开重连原因libusb 1.0.26 对某些设备的配置描述符解析存在兼容性问题尤其当设备报告bNumConfigurations1但实际有多个配置时。该版本未完全遵循 USB 2.0 规范第 9.4 节关于配置切换的原子性要求。解决升级至 libusb 1.0.27需自行编译或在调用libusb_set_configuration()前先用libusb_get_active_config_descriptor()获取当前配置仅当需要变更时才调用。3.5 现象多线程环境下libusb_handle_events()阻塞主线程卡死原因libusb 1.0.26 的事件循环未对poll()系统调用做超时封装若 USB 总线无事件libusb_handle_events()会永久阻塞。这与现代异步编程模型冲突。解决改用libusb_handle_events_timeout()并传入struct timeval如{1, 0}表示 1 秒超时或启用独立事件线程libusb_hotplug_register_callback()处理插拔事件避免阻塞主逻辑。4. 交叉编译避坑指南如何把 libusb-1.0.26 移植到 ARM 嵌入式 Linux当你需要在某公司定制的 AM335x 工控板上运行 USB 数据采集程序而板载系统是精简版 Yocto 构建的 Linux无包管理器、无aptlibusb-1.0.26-binaries.rar就成了救命稻草——但它不包含 ARM 版本。你必须基于源码交叉编译。这是最易翻车的环节因为libusb-1.0.26的configure脚本对交叉工具链支持不完善。4.1 必须重写的 configure 参数--host与--build的生死线官方文档说./configure --hostarm-linux-gnueabihf即可但实测会失败configure误判build系统为arm导致ac_cv_func_malloc_0_nonnullyes等测试用本地arm编译器执行必然失败。正确写法是显式分离--build和--host# 假设你的交叉工具链前缀是 arm-linux-gnueabihf- ./configure \ --buildx86_64-pc-linux-gnu \ # 宿主机你的 PC架构 --hostarm-linux-gnueabihf \ # 目标机工控板架构 --prefix/opt/libusb-arm \ # 安装路径用于后续拷贝到板子 --enable-static --disable-shared \ # 嵌入式首选静态库避免动态链接问题 CCarm-linux-gnueabihf-gcc \ # 指定交叉编译器 ARarm-linux-gnueabihf-ar \ # 指定交叉归档工具 RANLIBarm-linux-gnueabihf-ranlib玄学经验若configure报checking for a thread-safe mkdir -p... /bin/mkdir -p错误说明mkdir工具链路径未加入PATH需export PATH/path/to/cross-tools/bin:$PATH。4.2libusb-1.0.26的 ARM 编译致命缺陷clock_gettime()符号未定义ARM 版本libusb编译通过但链接你的应用时出现undefined reference to clock_gettime。这是因为libusb-1.0.26的configure脚本在检测clock_gettime()时未正确传递-rt链接选项给libtool。必须手动修改libtool脚本# 编译前进入 libusb 源码目录编辑生成的 libtool 文件 vim libtool # 找到 line 5920 附近关键词 archive_cmds将 # archive_cmds\$CC ... \$libobjs \$deplibs # 改为 # archive_cmds\$CC ... \$libobjs \$deplibs -lrt # 保存后 ./configure make为什么是-lrtclock_gettime()定义在librt.sorealtime library中而非libc。ARM glibc 常将其实现分离必须显式链接。4.3 板载部署三原则库路径、设备节点、udev 规则一个都不能少编译出libusb.a后拷贝到板子只是开始库路径将libusb.a放入/usr/lib并在编译你的程序时加-L/usr/lib -lusb-1.0设备节点确保/dev/bus/usb/目录存在mkdir -p /dev/bus/usb否则libusb_get_device_list()返回空udev 规则嵌入式系统常无 udev需在/etc/fstab或启动脚本中mknod创建设备节点不推荐更可靠的是在内核配置中启用CONFIG_USB_DEVICEFSy这样/proc/bus/usb/会自动挂载libusb 可 fallback 到此路径需 recompile libusb with--enable-udevno。5. 验证通信是否真正可靠的终极技巧用libusb_control_transfer()读取设备描述符并比对 CRC所有教程都教你libusb_open()→libusb_claim_interface()→libusb_bulk_transfer()但真正的可靠性验证不在数据收发而在控制面握手是否干净。我坚持在每个新项目初始化阶段插入一段“设备健康检查”代码它不依赖任何业务逻辑只用最基础的控制传输读取设备描述符并校验其 CRC32。若失败立刻终止不浪费时间在后续数据流上。这是我在某跨平台医疗设备 SDK 中沉淀的后悔药。5.1 设备描述符读取12 字节请求头 18 字节标准描述符USB 设备描述符是设备身份的“DNA”长度固定 18 字节包含bLength18,bDescriptorType0x01设备描述符idVendor/idProduct等关键字段。libusb 提供libusb_get_device_descriptor()封装但底层仍是libusb_control_transfer()。手动调用可完全掌控超时与重试#include libusb-1.0/libusb.h #include inttypes.h #include zlib.h // 用于 crc32 // 读取设备描述符的健壮函数 int read_device_descriptor(libusb_device_handle *handle, uint8_t *buf, int timeout_ms) { // SETUP 包bmRequestType0x80 (IN), bRequest0x06 (GET_DESCRIPTOR), wValue0x0100 (DEVICE), wIndex0, wLength18 uint8_t setup[8] {0x80, 0x06, 0x00, 0x01, 0x00, 0x00, 0x12, 0x00}; int transferred; int r libusb_control_transfer(handle, setup[0], setup[1], (setup[3] 8) | setup[2], // wValue (setup[5] 8) | setup[4], // wIndex buf, 18, timeout_ms); if (r 0) { fprintf(stderr, Control transfer failed: %s\n, libusb_error_name(r)); return r; } if (r ! 18) { fprintf(stderr, Expected 18 bytes, got %d\n, r); return -1; } return 0; } // 主验证函数 bool verify_device_health(libusb_device_handle *handle) { uint8_t desc[18]; if (read_device_descriptor(handle, desc, 1000) ! 0) { return false; } // 校验描述符结构bLength 必须为 18bDescriptorType 必须为 1 if (desc[0] ! 18 || desc[1] ! 1) { fprintf(stderr, Invalid descriptor header: bLength%d, bDescriptorType%d\n, desc[0], desc[1]); return false; } // 计算 CRC32使用 zlib 的 crc32 函数输入为整个 18 字节 uint32_t crc crc32(0L, Z_NULL, 0); // 初始化 crc crc32(crc, desc, 18); // 打印关键字段供人工核对非必须但调试时极有用 printf(Device ID: %04x:%04x, Class: %02x, MaxPacketSize0: %d, NumConfig: %d, CRC32: %08x\n, (desc[9]8)|desc[8], (desc[11]8)|desc[10], // idVendor, idProduct desc[5], desc[7], desc[4], crc); return true; }参数说明timeout_ms1000是黄金值——太短100ms易受 USB 总线抖动影响太长5000ms拖慢启动。crc32()使用 zlib 实现需链接-lz若无 zlib可用简单校验和uint8_t sum 0; for(int i0;i18;i) sum desc[i];替代虽弱但够用。5.2 为什么这个技巧比 ping 更有效libusb_get_device_list()只证明内核枚举到了设备不证明通信通道畅通libusb_open()成功只表示设备节点可访问不保证控制端点响应而GET_DESCRIPTOR是 USB 协议栈最底层的握手设备固件必须在DEFAULT状态下响应此请求。若失败100% 是物理层、供电、固件或驱动问题无需再往下走 bulk/interrupt 传输。我在某次交付中客户产线机器libusb_bulk_transfer()偶发丢包排查三天无果。最后加了这段健康检查发现 30% 的设备在read_device_descriptor()就超时——根源是 USB HUB 电源设计缺陷导致设备复位后描述符响应延迟超标。更换 HUB 后问题消失。真正的稳定性永远藏在最基础的握手里。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

PHP反序列化漏洞入门:从ez_unserialize到POP链构造实战

PHP反序列化漏洞入门:从ez_unserialize到POP链构造实战

最近翻到一道很有意思的新生赛题,[SWPUCTF 2021 新生赛]ez_unserialize,名字里那个"ez"很诚实,但仔细做下来你会发现,这题把PHP反序列化漏洞里最核心的几条知识点全都串了一遍。我一直觉得反序列化漏洞是Web安全里非常适…

2026/10/13 7:40:10 阅读更多 →
批量转双层PDF:扫描件如何获得可搜索的隐形文本层

批量转双层PDF:扫描件如何获得可搜索的隐形文本层

简介:这款批量转双层PDF工具v1.0,面向档案数字化、办公文档管理和需要检索扫描件的用户,能批量识别文件夹内的PDF并生成包含图像层与文本层的双层PDF,解决扫描文件不能搜索、复制和索引的痛点。工具基于PaddleOCR模型打造&#xf…

2026/10/13 7:40:10 阅读更多 →
C++塔防课程设计实战:基于Qt的工程结构、核心逻辑与避坑指南

C++塔防课程设计实战:基于Qt的工程结构、核心逻辑与避坑指南

简介:基于C实现的保卫萝卜塔防游戏课程设计源码包,面向具备C基础、希望用Qt完成游戏大作业的在校生或游戏开发初学者。项目完整还原经典塔防玩法:三个关卡、五种怪物、四种防御塔,英雄拥有6条命和初始1000金币,通过消灭…

2026/10/13 7:39:09 阅读更多 →

最新新闻

阿里云ECS IPv6配置全链路排障指南

阿里云ECS IPv6配置全链路排障指南

1. 为什么现在还值得花时间配通ECS的IPv6——不是赶时髦,是绕不开的现实需求 “阿里云ECS开启IPv6支持”这个标题看起来像一份过时的操作指南。毕竟IPv6喊了十几年,很多人印象里还是“实验室技术”“过渡方案”“等运营商推”。但去年底我帮某高校做一套…

2026/10/13 8:19:36 阅读更多 →
JDK编译报错“不支持发行版本6”:根因分析与Maven配置修复指南

JDK编译报错“不支持发行版本6”:根因分析与Maven配置修复指南

最近帮一位同事收拾旧项目,报错很典型:本地装的是JDK 11,代码从仓库拉下来,在IDE里一点编译,控制台直接打出java: 错误: 不支持发行版本 6。第一反应是Maven没配置好,又怀疑依赖版本冲突,折腾了…

2026/10/13 8:19:36 阅读更多 →
LLM代理成为一等优化手段:算子优化范式从手写汇编到代理驱动的转变

LLM代理成为一等优化手段:算子优化范式从手写汇编到代理驱动的转变

1. 从"手写汇编"到"代理驱动":算子优化范式正在发生什么变化2026年过半,如果你还在用纯手工的方式去调一个LLM推理场景下的算子kernel,大概率会在效率上吃大亏。这不是危言耸听,而是我这半年在几个实际项目里…

2026/10/13 8:19:36 阅读更多 →
开源可自托管代码评审工作流:从流程负担到质量抓手的工程实践

开源可自托管代码评审工作流:从流程负担到质量抓手的工程实践

代码评审这件事,做得好是团队效率的放大器,做得不好就是每天下班前的一场互相折磨。我在一线写了十几年代码,见过太多评审流于形式的团队——评论里全是“LGTM”,合入之后bug频发;也有评审严格到让人不敢提PR的团队&am…

2026/10/13 8:19:36 阅读更多 →
鸿蒙校园通开发实战:分布式数据同步与后台任务调度避坑指南

鸿蒙校园通开发实战:分布式数据同步与后台任务调度避坑指南

简介:这份资源是面向鸿蒙应用开发初学者与在校学生的实战项目源码包,以华为HarmonyOS为技术底座,围绕校园生活场景构建了一款功能完整的「校园通」软件。项目覆盖课程表管理、食堂菜谱、图书馆查询、校园导航、景点导览、号码百事通、校区平面…

2026/10/13 8:19:36 阅读更多 →
JMeter If Controller深度解析:逻辑调度与条件控制最佳实践

JMeter If Controller深度解析:逻辑调度与条件控制最佳实践

1. 项目概述:If Controller不是“条件开关”,而是JMeter里最被低估的逻辑调度中枢 如果你在用Jmeter做接口压测时,还只是把所有请求堆在同一个线程组里、靠“固定定时器”硬控节奏,或者一遇到“登录成功才跑下单”“状态为process…

2026/10/13 8:18:35 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/12 21:05:09 阅读更多 →
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/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →