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

Rust二进制程序无法访问gameclient模块中ServerConnection的问题

解决无法访问ServerConnection的问题

问题根源

你当前的项目没有src/lib.rs,每个src/bin/下的文件都是独立的二进制 crate,src/gameclient/目录不属于任何二进制 crate 的模块树,所以 rust-analyzer 识别不到,也没法在 client.rs 里引用。

方案一:创建库 crate(推荐,支持跨二进制复用)

  1. 在项目根目录的src/下创建lib.rs文件,内容如下:
pub mod gameclient;

这会把src/gameclient/作为库 crate 的公开模块。

  1. 在src/bin/client.rs开头添加引用:
// 把`your_crate_name`替换成你Cargo.toml里的`name`字段值
use your_crate_name::gameclient::ServerConnection;

现在就能正常使用ServerConnection了,rust-analyzer的提示也会消失。

方案二:直接在client.rs中引入子模块(仅client可用)

如果不想用库 crate,直接在src/bin/client.rs开头添加以下代码:

mod gameclient;
use gameclient::ServerConnection;

这种方式下gameclient只会属于client这个二进制 crate,server.rs如果要用到的话需要重复同样的操作,复用性较差。

额外修正:server_connection.rs里的语法错误

你写的pub impl ServerConnection是错误的,pub不需要加在impl上,正确写法是:

impl ServerConnection {
    pub fn connect(&self) {
        // 你的实现代码
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:57:32