You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Rust中pub use重导出Tauri命令函数无法被generate_handler识别?

问题原因与解决方案

核心原因

Tauri的#[tauri::command]宏不只是给函数打标记,还会在函数所在的模块里生成一个隐藏的关联项__cmd__{函数名}(这里就是__cmd__add),tauri::generate_handler正是通过识别这个隐藏项来注册命令的。

当你用pub use operation::add单独重导出函数时,只会导出add函数本身,不会带上这个宏生成的隐藏__cmd__add项,所以generate_handler在util模块里找不到它需要的标记,就会抛出“could not find __cmd__add in util”的错误。

而pub use operation::*是通配符导出,会把operation模块里所有公共项(包括宏生成的隐藏关联项)都导入到util模块,自然就能被generate_handler识别到。

解决方案

如果你不想用通配符导出,可以手动同时导出函数和对应的隐藏关联项:

修改src/util/mod.rs:

mod operation;

// 同时导出函数和宏生成的隐藏关联项
pub use operation::{add, __cmd__add};

这样既保持了精确导出,又能让tauri::generate_handler找到所需的标记项,正常注册命令。


内容的提问来源于stack exchange,提问作者Peter Wong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 10:52:06