Cadence路径设置全解析:从环境变量到项目实战的EDA环境配置指南
1. 项目概述为什么Cadence路径设置是工程师的“第一课”如果你刚接触Cadence这套庞大的EDA工具或者在使用中频繁遇到“库找不到”、“工具启动报错”、“文件关联失败”这些问题那么你大概率是卡在了“路径设置”这一关。这听起来像是个微不足道的配置问题但恰恰是它决定了你后续所有设计工作的流畅度和稳定性。我见过太多工程师包括我自己早期把大量时间浪费在反复折腾环境、重装软件上根源往往就是对Cadence的路径体系理解不透彻。Cadence路径设置本质上是一套告诉软件“去哪儿找东西”和“把东西放哪儿”的规则。这套规则贯穿了从软件安装、库管理、工具调用到数据交互的全过程。它不是一个单一的设置项而是一个由环境变量、配置文件、启动脚本共同构成的生态系统。理解并正确配置它就像给一座复杂的工厂铺设好所有管道和线路原料库文件、工艺文件才能准确送达产品版图、网表才能正确产出。无论是Virtuoso做IC设计还是Allegro做PCB布局亦或是使用Innovus进行自动布局布线路径都是它们赖以运行的基石。2. Cadence路径体系深度解析环境变量、启动脚本与配置文件要驾驭Cadence的路径必须从它的三层架构入手核心环境变量、用户启动脚本、以及工具内部的配置文件。这三者环环相扣优先级分明。2.1 核心环境变量系统的“路标”环境变量是操作系统级别的全局设置Cadence工具在启动时会首先读取这些“路标”。其中最关键的几个包括CDS_ROOT / CADENCE_HOME: 这是Cadence软件的安装根目录。所有工具的可执行文件、基础库和默认配置都位于这个路径下。例如如果安装在/opt/cadence/那么CDS_ROOT就应该指向它。这是所有其他路径的源头。CDS_LIC_FILE: 指定许可证文件的位置。这是软件能否启动的“钥匙”。通常格式是portserver如5280license_server或者指向一个具体的license.dat文件路径。设置错误会直接导致工具无法启动。CDS_INST_DIR: 在某些安装中用于指向安装目录功能与CDS_ROOT类似但更侧重于安装管理器InstallScape的上下文。OA_HOME: 指向OpenAccess数据库的安装目录。OpenAccess是Cadence和其他一些EDA工具之间进行数据交换的标准格式对于工具间的互操作性至关重要。LD_LIBRARY_PATH(Linux) /PATH: 动态链接库路径和系统命令路径。需要将Cadence的tools/bin、tools/dfII/bin等目录加入其中否则系统会找不到virtuoso、icfb等启动命令。注意环境变量的设置顺序和方式很重要。通常建议在用户的shell配置文件如~/.bashrc或~/.cshrc中设置并确保CDS_ROOT等变量在PATH变量之前被定义和引用。2.2 启动脚本与配置文件用户的“个性化地图”环境变量指明了大道而启动脚本和配置文件则定义了如何在这些大道上找到属于你自己的“家”工作区和“仓库”库。.cdsinit 与 .cdsenv: 这是Cadence工具的用户级配置文件。cdsinit通常用Skill语言编写用于初始化Virtuoso等工具可以在这里设置库路径、加载自定义技能脚本、定义快捷键等。cdsenv则更多用于设置一些环境参数。它们通常位于用户的家目录(~)或项目启动目录。.cds.lib:这是库路径管理的核心文件。它定义了Virtuoso可以访问的所有工艺库PDK、设计库和参考库。每一行定义一个库格式如DEFINE my_library /path/to/my_library。工具启动时会读取这个文件来构建库浏览器Library Manager中的列表。一个项目通常有一个自己的.cds.lib文件它会通过softinclude语句包含工艺厂提供的标准库定义文件。cds.lib 与 lib.defs: 在更早的流程或某些特定工具中也会见到这些文件功能与.cds.lib类似。项目启动脚本: 很多团队会为每个项目创建一个启动脚本例如start_project.sh。这个脚本的作用是1) 设置项目特定的环境变量2) 将项目目录下的.cds.lib链接或复制到启动目录3) 启动Virtuoso等工具。这样做可以完美隔离不同项目环境避免库路径冲突。2.3 路径的优先级与解析顺序当Cadence工具需要查找一个文件比如一个器件符号、一个版图单元时它遵循一个明确的搜索顺序当前设计或会话的上下文路径工具会首先在内存中已加载的库和当前工作目录中查找。cds.lib中定义的库路径按照文件中DEFINE语句的顺序进行搜索。顺序很重要如果两个库有同名的单元格cell先被搜索到的库中的版本将被使用。这常常是导致“引用错误库版本”问题的根源。环境变量指向的系统默认路径例如CDS_ROOT下的默认库。工具内置的硬编码路径。理解这个顺序对于调试“找不到元件”或“版本不对”的问题至关重要。例如如果你自己创建了一个名为analogLib的库并放在了cds.lib的首位那么工具就会使用你的版本而不是Cadence自带的那个这可能会引发意想不到的错误。3. 核心场景实操从安装到项目管理的路径设置全攻略理论清楚了我们来实战。下面我将分场景拆解最关键的路径设置操作。3.1 场景一软件安装后的基础环境搭建假设Cadence IC617Virtuoso安装在/eda/cadence/IC617。步骤1设置核心环境变量在你的~/.bashrc文件中添加以下内容# Cadence安装根目录 export CDS_ROOT/eda/cadence/IC617 export CDS_HOME$CDS_ROOT # 许可证服务器根据实际情况修改 export CDS_LIC_FILE528010.10.10.100 # OpenAccess路径 export OA_HOME$CDS_ROOT/oa_v22.50.049 # 将Cadence工具目录加入系统PATH export PATH$CDS_ROOT/tools/bin:$CDS_ROOT/tools/dfII/bin:$PATH # 库文件路径避免运行时找不到共享库 export LD_LIBRARY_PATH$OA_HOME/lib/linux_rhel50_gcc44x_64/opt:$CDS_ROOT/tools/lib:$LD_LIBRARY_PATH # 指定工艺库和PDK的潜在搜索路径可选但推荐 export CDS_SITE$CDS_ROOT/share/cdssetup保存后执行source ~/.bashrc使配置生效。步骤2验证安装在终端输入virtuoso 。如果配置正确Virtuoso的启动界面应该会出现。如果报错“command not found”检查PATH如果报许可证错误检查CDS_LIC_FILE和网络连通性。实操心得不建议把所有EDA工具的环境变量都堆在.bashrc里容易混乱。我的做法是创建一个单独的脚本文件如setup_cadence.sh里面只放Cadence的配置。需要用时先source这个脚本再启动工具。这样环境干净也便于管理多个版本。3.2 场景二创建并配置一个新的设计项目库这是最常见的日常操作。假设我们要在/home/user/projects/oscillator下创建一个振荡器项目。步骤1建立项目目录结构mkdir -p /home/user/projects/oscillator/{library,data,scripts,doc} cd /home/user/projects/oscillatorlibrary用于放设计库data放仿真数据scripts放Skill或Ocean脚本doc放文档。步骤2创建项目专属的.cdsinit和.cds.lib在项目根目录(/home/user/projects/oscillator)# 创建.cdsinit可以设置一些项目级偏好比如默认网格尺寸 echo ; Project specific initialization schGridSpacing(0.01) layoutGridSpacing(0.005) .cdsinit # 创建.cds.lib定义本项目使用的库 echo // Project Library Definitions DEFINE oscillator_lib ./library/oscillator_lib // 包含工艺厂提供的标准PDK库使用softinclude避免硬编码路径 SOFTINCLUDE /pdks/tsmc28/tsmc28_pdk/cds.lib // 包含公司公共基础库 SOFTINCLUDE /eda/common_libs/company_analog_lib/cds.lib // 包含Cadence自带的基本库 DEFINE basic $CDS_ROOT/share/cdssetup/dfII/basic DEFINE analogLib $CDS_ROOT/share/cdssetup/dfII/analogLib .cds.lib关键解析DEFINE oscillator_lib ./library/oscillator_lib: 定义了自己的设计库路径是相对路径。启动Virtuoso时它会在当前目录找到这个.cds.lib然后去./library/oscillator_lib找库文件。如果这个目录不存在Virtuoso会提示创建。SOFTINCLUDE: 这是最佳实践它像C语言的#include一样将另一个cds.lib文件的内容包含进来。好处是当PDK路径更新时你只需要修改那个被包含的文件所有项目的配置自动更新。绝对不要将PDK的完整路径用DEFINE写死在每个项目的.cds.lib里。步骤3启动Virtuoso并加载配置确保终端当前目录在项目根目录下然后运行virtuoso 。Virtuoso启动时会自动读取当前目录下的.cdsinit和.cds.lib。打开Library Manager你应该能看到oscillator_lib、tsmc28工艺库下的各个库如tsmc28rf、company_analog_lib以及basic和analogLib。3.3 场景三配置CISComponent Information System库路径CIS用于原理图符号与外部数据库如公司元器件数据库的关联其路径配置是关键。核心配置文件cds.lib和cdsenv除了在cds.lib中定义符号库还需要在cdsenv或启动选项中设置CIS查询的路径。更常见的做法是在Virtuoso启动后通过CIS配置管理器进行设置但这些设置最终会保存在用户目录的cdsenv文件或项目目录的特定配置中。关键环境变量/设置CDS_CIS_CONFIGURATION: 可以指向一个包含CIS配置文件的目录。CDS_CIS_LIBRARY_PATH: 指定CIS搜索元件库的路径。实操步骤在Virtuoso中打开CIW窗口。点击菜单Options-CIS Configuration-Local Configuration。在配置窗口中你需要指定Part Database: 数据库类型如ODBC、MySQL和连接字符串。Schematic Library: 映射到数据库的本地原理图符号库这个库必须在cds.lib中有定义。Footprint Library: 映射的PCB封装库对于Allegro。这些配置可以导出为一个.cfg文件。为了团队共享可以将这个配置文件放在网络共享位置然后在项目的启动脚本中通过设置一个环境变量指向它或者在.cdsinit中使用cisLoadConfig()函数加载。注意事项CIS配置涉及数据库连接非常复杂。最常见的路径问题是“符号找不到”或“属性不匹配”。务必确保1)cds.lib中定义的符号库路径正确且可读2) CIS配置中指定的库名与cds.lib中的DEFINE名称完全一致大小写敏感3) 数据库连接本身是通畅的。3.4 场景四Allegro PCB与Virtuoso交互的路径设置当进行数模混合设计或芯片-封装协同设计时需要VirtuosoIC和AllegroPCB交换数据。路径设置确保它们能“对话”。关键环节网表与器件属性从Virtuoso导出网表在Virtuoso中通过Export-CDL或Spectre导出网表。你需要指定输出目录。这个目录最好是一个Allegro也能访问的共享位置或相对固定的项目路径。Allegro中的库路径设置Padstack路径在Allegro的psm、pad路径中需要包含封装设计所需的焊盘文件。Symbol路径在Allegro的dev、dra路径中需要包含器件符号和封装图形。网表导入路径在Allegro中导入网表时需要指定从Virtuoso导出的网表文件.dat或.cir的位置。交互式布局更高级的流程中可能需要通过APD或SiP Layout工具进行交互。这需要配置CDS_SITE等环境变量确保两个工具能通过OpenAccess或直接文件接口找到彼此的数据。简化实践对于大多数项目我会在项目目录下创建一个interchange文件夹。/projects/oscillator/ ├── interchange/ │ ├── netlist/ # 存放Virtuoso导出的网表 │ ├── allegro_libs/ # 存放Allegro所需的封装库、焊盘文件 │ └── constraint/ # 存放约束文件然后在Virtuoso的导出配置和Allegro的库路径设置中都指向这个interchange目录下的相应子文件夹。这样就建立了一个清晰的、项目专属的数据交换区。4. 高级技巧与疑难杂症排查掌握了基础设置再来看看那些容易踩坑的“高级”问题和排查方法。4.1 多版本Cadence共存与切换一台电脑安装多个版本的Cadence如IC616和IC617是常事。关键在于环境隔离。方案使用模块化环境管理工具如Modules这是最优雅的方案。你可以为每个版本创建一个modulefile。# 示例/etc/modulefiles/cadence/ic617 #%Module1.0 proc ModulesHelp { } { puts stderr Sets up environment for Cadence IC617 } conflict cadence prepend-path PATH /eda/cadence/IC617/tools/bin prepend-path PATH /eda/cadence/IC617/tools/dfII/bin setenv CDS_ROOT /eda/cadence/IC617 setenv CDS_LIC_FILE 5280license_server setenv OA_HOME /eda/cadence/IC617/oa_v22.50.049 prepend-path LD_LIBRARY_PATH $OA_HOME/lib/linux_rhel50_gcc44x_64/opt使用时在终端输入module load cadence/ic617即可切换到IC617环境输入module unload cadence/ic617或module load cadence/ic616即可切换。完全避免了手动修改.bashrc的麻烦和冲突。方案二使用封装脚本如果不用Modules可以为每个版本写一个独立的启动脚本如start_ic617.sh脚本内设置全套环境变量后再启动virtuoso。确保不同版本的脚本不会同时被source。4.2 常见错误与排查清单遇到路径相关报错可以按以下清单逐项排查错误现象可能原因排查步骤virtuoso: command not foundPATH环境变量未包含Cadence的bin目录。1.echo $PATH检查路径。2. 检查.bashrc中CDS_ROOT和PATH设置是否正确。3. 确认Cadence是否真的安装在指定目录。*Error* Cannot find/open CDF file for ...工具找不到器件信息的CDF文件通常是库路径错误。1. 检查当前目录或启动目录下的.cds.lib文件是否存在且内容正确。2. 检查cds.lib中工艺库PDK的DEFINE或SOFTINCLUDE语句路径是否正确。3. 在CIW中使用libManager查看库列表是否完整。启动Virtuoso后Library Manager为空.cds.lib文件未被正确读取或其中定义的库路径无效。1. 确认启动Virtuoso的终端当前目录是否有.cds.lib。2. 在CIW中输入getShellEnvVar(“CDS_LIBRARY_PATH”)查看工具读取的库路径。3. 检查.cds.lib文件语法确保没有多余空格或错误字符。仿真时提示model library not foundSpectre/HSPICE仿真器找不到模型库文件.scs, .lib。1. 检查原理图中器件的model属性或仿真配置文件.scs中的include语句路径。2. 路径可以是绝对路径或相对于$CDS_SITE或仿真器搜索路径的相对路径。3. 在ADE L中检查Setup-Model Libraries中的设置。Allegro无法找到封装或焊盘Allegro的psmpath和devpath设置不正确。1. 在Allegro中执行Setup-User Preferences。2. 查看Paths-Library下的devpath、padpath、psmpath。3. 确保这些路径包含了你的封装库和焊盘库所在目录。CIS无法显示元器件CIS配置中的库路径与cds.lib不匹配或数据库连接失败。1. 确认CIS配置中指定的原理图库名与cds.lib中DEFINE的名字完全一致。2. 测试数据库连接是否正常。3. 检查CIS缓存有时需要清除缓存cisFlushCache并重启。4.3 环境变量CDS_SITE的妙用CDS_SITE是一个经常被忽略但很有用的变量。它指向一个目录Cadence工具会在该目录下寻找一些默认的配置文件例如$CDS_SITE/cds.lib系统级的库定义文件。$CDS_SITE/.cdsinit系统级的初始化脚本。$CDS_SITE/simulation默认的仿真模型库路径。你可以将公司内部的标准工艺库定义文件、通用的Skill脚本、仿真实例模板等放在CDS_SITE指向的目录结构中。这样任何用户在任何项目下启动工具都能自动获得这些公司标准的配置和资源极大地统一了设计环境减少了重复配置。设置方法在公司的EDA环境部署中通常会搭建一个网络共享目录如/eda/cadence/site将所有标准配置放在里面。然后在给用户的默认.bashrc模板中设置export CDS_SITE/eda/cadence/site。用户个人的.cdsinit可以通过load函数来加载$CDS_SITE下的通用脚本实现全局与个人配置的结合。路径设置是Cadence工具链使用的基石初看繁琐但一旦理顺就能极大提升设计效率和团队协作的顺畅度。它没有太多高深的理论更多的是对工具运行逻辑的理解和细致规范的配置。最好的学习方式就是动手创建一个干净的项目目录从零开始配置一遍.cds.lib和启动脚本遇到报错就根据提示和本文的排查清单去分析。几次下来你就能建立起清晰的“路径图景”从而真正驾驭这套强大的EDA工具。

相关新闻

总线舵机通信协议、驱动板选型与实战避坑指南

总线舵机通信协议、驱动板选型与实战避坑指南

1. 从“单打独斗”到“集团军作战”:总线舵机为何是趋势 如果你玩过机器人、做过机械臂,或者捣鼓过一些需要精确动作的模型,那你肯定对舵机不陌生。传统的PWM舵机,就像一个个需要你亲自去喊话的士兵,每个舵机都独占一根…

2026/10/15 2:27:31 阅读更多 →
3句话,让AI帮我搞定一个App:谷歌“王炸”工具,正在让设计师和程序员一起失业?

3句话,让AI帮我搞定一个App:谷歌“王炸”工具,正在让设计师和程序员一起失业?

一行代码不用写,甚至不需要打开Figma,你的下一个UI设计师,可能真的会是AI。小伙伴们,今天分享一款谷歌“王炸”工具,打开网站点击立即试用!一句话生成设计稿“帮我设计一整套‘周末去哪儿’App,…

2026/10/12 1:54:45 阅读更多 →
NVIDIA Profile Inspector 完整指南:解锁显卡隐藏性能的终极工具

NVIDIA Profile Inspector 完整指南:解锁显卡隐藏性能的终极工具

NVIDIA Profile Inspector 完整指南:解锁显卡隐藏性能的终极工具 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 你是否曾经感觉自己的 NVIDIA 显卡性能没有完全发挥出来?在游戏…

2026/10/6 10:45:07 阅读更多 →

最新新闻

程序员英语词汇宝典词条精讲:exclamation mark(感叹号 `!`)——发音、词义与编程实战用法

程序员英语词汇宝典词条精讲:exclamation mark(感叹号 `!`)——发音、词义与编程实战用法

教程 【免费下载链接】most-frequent-technology-english-words 程序员工作中常见的英语词汇 项目地址: https://gitcode.com/gh_mirrors/mo/most-frequent-technology-english-words 点击查看 免费下载 本文以开源仓库 most-frequent-technology-english-words&am…

2026/10/15 2:27:21 阅读更多 →
Mixed‑Content 混合内容坑,HTTPS 页面加载 HTTP 的 M3U8 资源排错

Mixed‑Content 混合内容坑,HTTPS 页面加载 HTTP 的 M3U8 资源排错

一、混合内容带来播放黑屏的业务现象 现在绝大多数业务网站都升级为 HTTPS 安全页面。很多同学会遇到一个很迷惑故障:网页本身是 HTTPS,M3U8 播放地址打开黑屏,但是复制 M3U8 链接新开标签页播放却完全正常。 这个问题很多新手不了解&#…

2026/10/15 2:27:21 阅读更多 →
手写SURF特征点检测器:C++从零实现与工程避坑指南

手写SURF特征点检测器:C++从零实现与工程避坑指南

简介:本资源是一份面向计算机视觉初学者与算法工程师的SURF特征检测技术学习包,聚焦于算法原理理解与C工程实现能力提升。内容涵盖2006年Pfister等人提出的SURF核心思想详解——包括基于积分图像的快速尺度空间构建、Hessian矩阵关键点定位、Haar小波描述…

2026/10/15 2:27:21 阅读更多 →
上下文模式实战:从ThreadLocal到AI对话的上下文管理

上下文模式实战:从ThreadLocal到AI对话的上下文管理

1. 从“上下文模式”说起:一个被低估的工程概念第一次听到“context-mode”这个词,很多人会下意识觉得它是个抽象得没边儿的概念,像是架构师在PPT里才会用的词。但如果你真正在项目里踩过坑,就会明白它其实是一个非常接地气的工程…

2026/10/15 2:27:21 阅读更多 →
Three.js入门指南:3D网页开发核心概念与实战技巧

Three.js入门指南:3D网页开发核心概念与实战技巧

1. Three.js入门:从实际问题出发的基础指南最近在项目中遇到一个需求:需要在网页中展示3D模型并实现交互操作。作为一个前端开发者,我首先想到的就是Three.js这个强大的JavaScript 3D库。但在实际使用过程中,我发现很多教程都是从…

2026/10/15 2:27:21 阅读更多 →
Qt6计算器开发全解析:信号槽、表达式解析与工程实战

Qt6计算器开发全解析:信号槽、表达式解析与工程实战

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

2026/10/15 2:26:21 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/15 0:14:36 阅读更多 →
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/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练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/14 7:53:34 阅读更多 →