ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

【AC63】在 VS Code 里用 TaoToken 配置 Makefile 编译工程:从报错到跑通

【AC63】在 VS Code 里用 TaoToken 配置 Makefile 编译工程:从报错到跑通 1. 为什么要在 VS Code 里折腾 AC63 的 Makefile 编译如果你手上是 AC63 系列杰理 AC63 芯片的音频/蓝牙工程官方 IDE 大概率还是 CodeBlocks。CodeBlocks 能编译、能烧录但代码补全、跳转、Git 集成、多光标这些体验和现在的 VS Code 差了一整代。很多人日常是「VS Code 写代码 CodeBlocks 编译」切来切去保存不同步、改完忘了编译、编译完忘了烧录一天下来光切窗口就浪费不少时间。这篇要解决的就是这条链路在 VS Code 里直接make编译 AC63 工程从 Makefile 报错、工具链路径找不到、头文件缺失一路排到烧录后板子自动重启。同时把 TaoToken 接进来统一管理 Key 和 API 通道让 VS Code 里的 AI 辅助Cline / CC Switch 这类能直接读工程、改 Makefile、分析编译日志而不是你手动复制报错去问。适合谁已经在用 AC63 工程、会一点命令行、想让编译和 AI 辅助都在 VS Code 里闭环的嵌入式开发者。不适合完全没碰过 Makefile 的纯小白但我会把每一步命令和配置都给全照着改就行。核心检索词先摆出来VS Code 编译 AC63、AC63 Makefile 配置、杰理 AC63 工具链报错、VS Code 编译杰理工程。这几个词后面会反复出现你搜问题的时候也用得上。2. TaoToken 前置把 Key 和 API 通道先备好在 VS Code 里做 AI 辅助绕不开一个事你得有个统一的入口去调模型。TaoToken 在这里的角色就是「统一 Key / API 通道」——你不用在每个插件里分别填不同厂商的 Key而是拿一个 TaoToken 的 Key走同一个 API 地址模型对话、代码补全、Agent 调用都从这儿走。官网入口https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentAPI 地址注意这个不加 UTMhttps://taotoken.net/api你需要提前准备的东西一个 TaoToken 账号登录后进控制台在 API Keys 页面生成一个 Key复制保存好只显示一次确认你要用的模型名比如做代码分析常用的那几个控制台和 Key 管理入口控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewriteAPI Keyshttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite注意Key 不要硬编码进工程文件里提交到 Git。建议放在系统环境变量或者 VS Code 的用户级 settings.json别放进项目级.vscode/settings.json一起提交。如果你只是想先验证模型通不通可以用模型对话页面直接试模型对话https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite长期在 VS Code 里做编码、跑 Agent 的建议看 Coding Plan额度模型更划算Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite接入文档在这里配置参数以文档为准接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite3. 可复制配置settings.json 与 Makefile 片段3.1 先确认工程结构AC63 标准工程打开后大概是这样project/ ├── project.jpr # 工程文件 ├── 111Makefile # 官方自带但默认不启用的 Makefile ├── source/ # 源码 │ └── cpu/bd19/tools/download/data_trans/download.bat └── .vscode/ # VS Code 打开后自动生成关键动作把111Makefile复制一份去掉前面的111变成Makefile。这是官方自带的平时不启用改名后make才会读它。3.2 VS Code 的 settings.json项目级.vscode/settings.json主要配终端和文件关联让编译在 VS Code 内置终端里跑{ terminal.integrated.defaultProfile.windows: PowerShell, terminal.integrated.cwd: ${workspaceFolder}/project, files.associations: { Makefile: makefile, *.mk: makefile }, C_Cpp.default.includePath: [ ${workspaceFolder}/project/source/**, ${workspaceFolder}/project/include/** ], C_Cpp.default.defines: [ CONFIG_AC631 ] }terminal.integrated.cwd指向 project 目录这样你打开终端就直接在能跑make的位置不用每次cd。用户级 settings.json放 TaoToken 相关别提交建议用环境变量方式插件里引用{ cline.apiProvider: openai-compatible, cline.openAiBaseUrl: https://taotoken.net/api, cline.openAiApiKey: ${env:TAOTOKEN_API_KEY} }然后在系统环境变量里设TAOTOKEN_API_KEY值为你在 API Keys 页面生成的那串。3.3 Makefile 关键片段官方 Makefile 里工具链路径通常是写死的报错多半出在这。找到类似这几行按你本机实际安装路径改# 工具链路径按本机实际安装位置修改 CC : C:/JL/pi32v2/bin/clang.exe AR : C:/JL/pi32v2/bin/ar.exe LD : C:/JL/pi32v2/bin/ld.exe # 头文件搜索路径 INCLUDES : -I./source \ -I./source/include \ -I./source/cpu/bd19 # 源文件收集 SRCS : $(wildcard ./source/*.c) \ $(wildcard ./source/cpu/bd19/*.c) OBJS : $(SRCS:.c.o) # 默认目标 all: $(OBJS) $(LD) -o output.elf $(OBJS)路径里的斜杠用/或\\都行但别混用。Windows 下C:/JL/...这种正斜杠 Make 是认的。3.4 烧录后自动重启的 download.bat 修改编译烧录成功但板子不重启是 AC63 常见坑。进到你的工程名/source/cpu/bd19/tools/download/data_trans/download.bat用文本编辑器打开在烧录命令后面插入重启延时250 是毫秒按需调echo off :: 烧录动作 download_tool.exe -f output.elf :: 烧录后延时重启250 为毫秒 ping 127.0.0.1 -n 1 -w 250 nulping -n 1 -w 250是 Windows 下做延时的常用写法比timeout在某些环境更稳。4. 验证请求从 make 到跑通4.1 第一次 make 一定会报错在 VS Code 里 Ctrl 打开终端确认在 project 目录输入make第一次基本必报错常见几类clang.exe: not found—— 工具链路径不对No such file or directory: xxx.h—— 头文件搜索路径缺了undefined reference to xxx—— 源文件没被wildcard收进来cannot open output file—— 输出目录不存在别慌这些就是排障清单。4.2 逐类修工具链找不到先确认本机装没装路径对不对where clang如果返回空说明 PATH 里没有要么加 PATH要么在 Makefile 里写绝对路径。头文件缺失看报错里缺的是哪个头去工程里搜它在哪个目录把那个目录加进INCLUDES。源文件没收到检查wildcard的路径是不是写错了或者文件在更深一层目录需要再加一条wildcard。4.3 编译成功的样子修完之后再make看到类似clang.exe -c source/main.c -o source/main.o clang.exe -c source/cpu/bd19/clock.c -o source/cpu/bd19/clock.o ld.exe -o output.elf source/main.o source/cpu/bd19/clock.o Build success: output.elfoutput.elf生成就是编译通了。接着跑烧录板子自动重启说明整条链路闭环。4.4 用 TaoToken 辅助分析编译日志编译报错一大串的时候与其自己一行行看不如把日志丢给模型。在 VS Code 里用 Cline 或 CC Switch 接入 TaoToken 后直接选中终端输出让它分析请分析这段 AC63 工程的 make 报错指出根因和修改位置 粘贴报错日志模型会告诉你缺哪个路径、哪个源文件没收到比手动 grep 快很多。这也是把 TaoToken 接进来的实际价值——不是替代编译器而是帮你读日志、改 Makefile。5. 本篇常见错排查5.1 make 命令本身找不到PowerShell 里报make : 无法将make项识别为 cmdlet说明 make 没装或没进 PATH。装 MinGW 或 MSYS2 后把make.exe所在目录加进系统 PATH重开终端。5.2 路径里有空格工程放在C:/Users/My Name/project这种带空格的路径下Makefile 里路径不加引号会断。要么把工程挪到无空格路径要么在 Makefile 里给路径加引号。5.3 头文件路径大小写Windows 文件系统不区分大小写但 Make 和 clang 在某些配置下区分。Source和source混用会找不到文件统一成小写最稳。5.4 烧录成功但板子不重启回到 3.4 节检查download.bat里延时那行有没有加对位置。加在烧录命令之后、脚本结束之前。250 毫秒不够就调到 500。5.5 TaoToken 调用报 401Key 没读到或写错。检查环境变量TAOTOKEN_API_KEY是否在当前终端可见echo $env:TAOTOKEN_API_KEYPowerShell 用$env:cmd 用%TAOTOKEN_API_KEY%。VS Code 要重启才能读到新加的环境变量。5.6 插件里 baseUrl 写错TaoToken 的 API 地址是https://taotoken.net/api别多加/v1或漏掉/api具体以接入文档为准。写错会报 404 或连接失败。6. 把 AI 辅助接进你的 AC63 工作流编译链路跑通之后下一步是让 AI 真正参与进来。在 VS Code 里Cline 或 CC Switch 这类插件通过 TaoToken 的统一通道调模型你可以让它读 Makefile帮你补全缺失的wildcard路径分析编译日志定位头文件缺失根据报错改download.bat的延时参数解释 AC63 工程里某个源文件的作用接入骨架以 Cline 为例{ cline.apiProvider: openai-compatible, cline.openAiBaseUrl: https://taotoken.net/api, cline.openAiApiKey: ${env:TAOTOKEN_API_KEY}, cline.openAiModel: 你的模型名 }模型名以接入文档和控制台里可用的为准。配好后在 Cline 面板里发一条消息测试能正常返回就通了。如果你主要做长期编码和 Agent 任务Coding Plan 的额度模型更适合Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite需要生成新 Key 或管理已有 KeyAPI Keyshttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite配置参数有疑问查接入文档接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewriteClaude Code / Anthropic 相关接入https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentclaudecodeutm_campaignrewrite我自己的习惯是Makefile 报错先自己扫一眼扫不出来就把整段日志丢给模型让它给修改建议改完再make验证。这样一轮下来比在 CodeBlocks 和 VS Code 之间来回切快得多而且所有改动都在 Git 里可追溯。
返回列表